leetcode: Remove Nth Node From End of List
2013-11-26 19:25
274 查看
Given a linked list, remove the nth node from the end of list and return its head.
For example,
Note:
Given n will always be valid.
Try to do this in one pass.
。一定警告自己注意边界条件。。
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.
思路
把所有的指针全部存下来,想不到其他的只遍历一次的方法了。自己中间马虎,提交了好几次才成功。一定警告自己注意边界条件。。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *removeNthFromEnd(ListNode *head, int n) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. vector<ListNode *> pt; ListNode * cur = head; while(cur != NULL) { pt.push_back(cur); cur = cur->next; } if(pt.size() == 0) return head; if(n <= 0 || n > pt.size()) return head; if(pt.size() == 1) { delete head; return NULL; } if(pt.size() == n) { cur = head->next; head->next = NULL; delete head; return cur; } if(n == 1) { pt[pt.size()-2]->next = NULL; delete pt[pt.size() - 1]; return head; } ListNode * pr = pt[pt.size() - n - 1]; cur = pr->next; pr->next = cur->next; cur->next = NULL; delete cur; return head; } };
相关文章推荐
- [LeetCode] Remove Nth Node From End of List
- LeetCode:Remove Nth Node From End of List
- leetcode 题解 || Remove Nth Node From End of List 问题
- [Leetcode]Remove Nth Node From End of List
- LeetCode Remove Nth Node From End of List
- LeetCode -- 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 (2 solutions)
- LeetCode-19-Remove-Nth-Node-From-End-of-List 链表水题
- [leetcode]19. Remove Nth Node From End of List@Java解题报告
- [LeetCode] 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
- 【C++】【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(python)
- 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--删除链表的倒数第n个结点
- LeetCode 19 Remove Nth Node From End of List (移除距离尾节点为n的节点)