首页 > 其他 > 详细

【leetcode】Remove Nth Node From End of List

时间:2015-05-18 14:24:22      阅读:135      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!