Remove Nth Node From End of List
2014-09-11 19:58
344 查看
Given a linked list, remove the nthnode 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.
思路:
两个指针,p先走n步,然后q开始走。当p走到末尾时,q正好到了待删除节点。
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.
思路:
两个指针,p先走n步,然后q开始走。当p走到末尾时,q正好到了待删除节点。
#include <iostream> using namespace std; struct LinkNode { int data; LinkNode *next; LinkNode(int x):data(x),next(NULL){} }; LinkNode * removeNthNodeFromEnd(LinkNode *head,int n) { if(head == NULL || n == 0)//防御性编程,增加健壮性 return head; LinkNode *dummy = new LinkNode(-1); dummy->next = head; LinkNode *p,*q,*tmp; p = dummy; q = dummy; //p先走n步 for(int i=0;i<n;i++) { if(p->next != NULL) p = p->next; else return head;//如果n超过链表的长度,直接返回head } //然后p,q一起走 while(p->next) { p = p->next; q = q->next; } //此时q指向的是待删除节点的前驱 tmp = q->next->next; delete q->next; q->next = tmp; head = dummy->next; delete dummy; return head; }
相关文章推荐
- LeetCode: Remove Nth Node From End of List
- Remove Nth Node From End of List
- LeetCode解题报告--Remove Nth Node From End of List
- LeetCode刷题笔记(链表):remove-nth-node-from-end-of-list
- 19. Remove Nth Node From End of List
- Leetcode 19.Remove Nth Node From End of List
- Remove Nth Node From End of List
- 【LeetCode】19 - Remove Nth Node From End of List
- 19. Remove Nth Node From End of List
- 19. Remove Nth Node From End of List
- Remove Nth Node From End of List
- leetcode 19.Remove Nth Node From End of List
- LeetCode - 19. Remove Nth Node From End of List
- [LeetCode] 19. Remove Nth Node From End of List
- LeetCode 19. Remove Nth Node From End of List 解题报告
- LeetCode问题解答:19. Remove Nth Node From End of List
- Remove Nth Node From End of List
- LeetCode:Remove Nth Node From End of List
- LeetCode Remove Nth Node From End of List
- [leedcode 19]Remove Nth Node From End of List