File tree Expand file tree Collapse file tree 1 file changed +10
-5
lines changed
19-remove-nth-node-from-end-of-list Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -12,11 +12,12 @@ typedef struct ListNode node;
12
12
class Solution {
13
13
public:
14
14
ListNode* removeNthFromEnd (ListNode* head, int n) {
15
- node* dummy = new node (0 );
16
- dummy->next = head;
15
+ node* dummy = new node (0 );// create a tangible dummy node before head node -
16
+ // helps in handle LL edge cases
17
+ // dummy -> head -> ..... -> NULL
18
+ dummy->next = head;
17
19
18
- node* right = head;
19
- node* left = head;
20
+ node* right = head, *left = head;
20
21
node* prev = dummy;
21
22
22
23
// [-------------------------------]
@@ -32,6 +33,7 @@ class Solution {
32
33
33
34
while (right != NULL ) {
34
35
// right traverses (L-n) steps
36
+ // along with it, head also traverses L-n steps
35
37
right = right->next ;
36
38
prev = left;
37
39
left = left->next ;
@@ -41,4 +43,7 @@ class Solution {
41
43
42
44
return dummy->next ;
43
45
}
44
- };
46
+ };
47
+
48
+ // node* x = a, y = b; XXX
49
+ // it should be node* x = a, *y = b;
You can’t perform that action at this time.
0 commit comments