19. 删除链表的倒数第N个节点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19. 删除链表的倒数第N个节点相关的知识,希望对你有一定的参考价值。
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 10 //1、删除节点,就是找到该节点的前一个节点就可以 11 //2、然后slow->next = slow->next->next; 12 class Solution 13 { 14 public: 15 ListNode* removeNthFromEnd(ListNode* head, int n) 16 { 17 ListNode* dummy = new ListNode(-1); 18 dummy->next = head; 19 20 ListNode* fast = dummy; 21 ListNode* slow = dummy; 22 for(int i = 0;i <= n;i ++) fast = fast->next; 23 while(fast) 24 { 25 fast = fast->next; 26 slow = slow->next; 27 } 28 if(slow->next == NULL) slow = NULL; 29 else slow->next = slow->next->next; 30 return dummy->next; 31 } 32 };
以上是关于19. 删除链表的倒数第N个节点的主要内容,如果未能解决你的问题,请参考以下文章
代码随想录算法训练营第四天 | 24.两两交换链表中的节点19.删除链表的倒数第N个节点160.相交链表142.环形链表II