Remove Nth Node From End of List
来源:互联网 发布:linux 压缩与解压 编辑:程序博客网 时间:2024/04/30 15:54
Remove Nth Node From End of ListJan 28 '12
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.
思路:设一个快指针一个慢指针,快指针提前于慢指针n,然后两者同时向后移动,那么当快指针到达链表尾端时,慢指针刚好到达倒数第n位,去掉这个节点即可。代码如下:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */
ListNode *removeNthFromEnd(ListNode *head, int n) { // Start typing your C/C++ solution below // DO NOT write int main() function ListNode *fast = head; ListNode *slow = head; for(int i = 0;i < n; i++) fast = fast->next; if(fast == NULL) return head->next; while(fast->next!=NULL) { fast = fast->next; slow = slow->next; } slow->next = slow->next->next; return head; }
32 milli secs
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node from End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Java中finalize()用法
- MXML
- 手动注册msxml4.dll
- C#字符串去除html标记
- 《GPU编程与CG语言之阳春白雪下里巴人》阅读笔记 第五章+第六章
- Remove Nth Node From End of List
- tune2fs使用
- Obfuscated ssh Client under Linux
- hdu 2523
- mysql 之 explain
- Ubuntu 64bit 上面编译Android 4.0.3 (Aliwinner)
- Boosting算法简介
- 使用VC++6.0创建带界面的ActiveX控件
- string的c_str()和data()有区别?