标签:
Given a linked list, remove the nth node from the end of list and return its head.
For example,
Given linked list: 1->2->3->4->5, and n = 2.
After removing the second node from the end, the linked list becomes 1->2->3->5.
Note:
Given n will always be valid.
Try to do this in one pass.
1 class Solution { 2 public: 3 ListNode *removeNthFromEnd(ListNode *head, int n) { 4 5 int i=0; 6 int j; 7 ListNode *s=new ListNode(0); 8 s->next = head; 9 ListNode *p=s; 10 11 //ListNode* dumy = new ListNode(0); 12 13 ListNode *q=s; 14 //p=head; 15 //q=head; 16 17 while(i<n) 18 { 19 p=p->next; 20 i++; 21 22 } 23 24 while(p->next!=NULL) 25 { 26 p=p->next; 27 q=q->next; 28 } 29 30 q->next=q->next->next; 31 32 33 return s->next; 34 } 35 };
【leetcode】Remove Nth Node From End of List
标签:
原文地址:http://www.cnblogs.com/jawiezhu/p/4511709.html