[Leetcode] Remove Nth Node From End of List
2016-10-05 15:15
232 查看
利用快慢指针的方法进行,先让快指针走n步,本题里注明了n一定有效,所以不需要对n的有效性进行检查,若需检查请参考二,需要注意的时链表删除的时候需要注意头指针的处理问题
class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { if(!head) return nullptr; ListNode* p1 = head; ListNode* p2 = head; ListNode* prev; int i = 0; while(i<n-1){ p2=p2->next; i++; } //if(!p2) return nullptr; while(p2->next){ prev=p1; p1=p1->next; p2=p2->next; } if(p1==head) return head->next; else prev->next=p1->next; return head; } };
class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { if(!head) return nullptr; ListNode* p1 = head; ListNode* p2 = head; ListNode* prev; int i = 0; while(i<n-1&&p2->next){ p2=p2->next; i++; } if(i<n-1) return nullptr; while(p2->next){ prev=p1; p1=p1->next; p2=p2->next; } if(p1==head) return head->next; else prev->next=p1->next; return head; } };
相关文章推荐
- 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: 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 40: 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 40: 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-Remove Nth Node From End of List
- LeetCode: Remove Nth Node From End of List