【亡羊补牢】挑战数据结构与算法 第59期 LeetCode 19. 删除链表的倒数第N个节点(链表)
发布日期:2021-06-29 14:34:37 浏览次数:2 分类:技术文章

本文共 1025 字,大约阅读时间需要 3 分钟。

仰望星空的人,不应该被嘲笑

题目描述

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.

说明:

给定的 n 保证是有效的。

进阶:

你能尝试使用一趟扫描实现吗?

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

双指针,先让一个指针q走n 步,然后另一个指针p一起走,当第一个指针q走到尾的时候,此时p指针就指向了我们要删除的节点,进行删除即可。

/** * Definition for singly-linked list. * function ListNode(val) { *     this.val = val; *     this.next = null; * } *//** * @param {ListNode} head * @param {number} n * @return {ListNode} */var removeNthFromEnd = function(head, n) {
let dummyHead = new ListNode(); dummyHead.next = head; let p = dummyHead; let q = dummyHead; let k = n; while(k--) q = q.next; // 先让一个指针先走n步 while(q.next){
// 一起走 q = q.next; p = p.next; } p.next = p.next.next; // 找到删除节点,进行删除 return dummyHead.next;};

最后

文章产出不易,还望各位小伙伴们支持一波!

往期精选:

小伙伴们可以在Issues中提交自己的解题代码,🤝 欢迎Contributing,可打卡刷题,Give a ⭐️ if this project helped you!

,方便小伙伴阅读玩耍~

学如逆水行舟,不进则退

转载地址:https://chocolate.blog.csdn.net/article/details/108919193 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【亡羊补牢】挑战数据结构与算法 第60期 LeetCode 剑指 Offer 18. 删除链表的节点(链表)
下一篇:【亡羊补牢】挑战数据结构与算法 第58期 LeetCode 24. 两两交换链表中的节点(链表)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月20日 11时44分34秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章