目录
- 前言
- 算法题(LeetCode刷题19删除链表的倒数第N个节点)—(保姆级别讲解)
-
- 结束语
前言
本文章一部分内容参考于《代码随想录》----如有侵权请联系作者删除即可,撰写本文章主要目的在于记录自己学习体会并分享给大家,全篇并不仅仅是复制粘贴,更多的是加入了自己的思考,希望读完此篇文章能真正帮助到您!!!
算法题(LeetCode刷题19删除链表的倒数第N个节点)—(保姆级别讲解)
力扣题目链接
分析题目:
- 操作链表是
单链表
- 删除链表的是倒数第
n
个节点(所以我们需要找到被删除节点的前一个节点
)
删除链表的倒数第N个节点代码:
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* dummyHead = new ListNode(0);
dummyHead->next = head;
ListNode* slow = dummyHead;
ListNode* fast = dummyHead;
while(n-- && fast != NULL) {
fast = fast->next;
}
fast = fast->next;
while (fast != NULL) {
fast = fast->next;
slow = slow->next;
}
ListNode *tmp = slow->next; C++释放内存的逻辑
slow->next = tmp->next;
delete tmp;
return dummyHead->next;
}
};
算法思想
为了更能让大家了解该算法的算法思想,作者特意画了一张图供大家观看!!!
结束语
如果觉得这篇文章还不错的话,记得点赞 ,支持下!!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)