[LeetCode19]Remove Nth Node From End of List
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode19]Remove Nth Node From End of List相关的知识,希望对你有一定的参考价值。
题目:
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.
给定一个单链表,移除倒数第n个Node,返回链表的head
思路:维护两个指针slow,fast,fast先移动n步,然后slow、fast同时移动,直到fast为空为止,删除slow后面的结点即可
代码:
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution { 10 public: 11 ListNode* removeNthFromEnd(ListNode* head, int n) { 12 ListNode *preHead = new ListNode(0); 13 ListNode *fast = preHead, *slow = preHead; 14 slow->next = head; 15 for(int i = 0; i <= n; ++i) 16 fast = fast->next; 17 while(fast) 18 { 19 fast = fast->next; 20 slow = slow->next; 21 } 22 slow->next = slow->next->next; 23 return preHead->next; 24 } 25 };
以上是关于[LeetCode19]Remove Nth Node From End of List的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode19. 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