LeetCode算法题-Delete Node in a Lin

作者: 程序员小川 | 来源:发表于2018-12-10 21:31 被阅读2次

    这是悦乐书的第197次更新,第204篇原创

    01 看题和准备

    今天介绍的是LeetCode算法题中Easy级别的第60题(顺位题号是235)。编写一个函数来删除单链表中的节点(尾部除外),只允许访问该节点。例如:

    鉴于链表 - head = [4,5,1,9],如下所示:

    4 - > 5 - > 1 - > 9

    输入:head = [4,5,1,9],node = 5

    输出:[4,1,9]

    说明:您将获得值为5的第二个节点,即链表调用你的函数后应该变成4 - > 1 - > 9。


    输入:head = [4,5,1,9],node = 1

    产出:[4,5,9]

    说明:您将获得值为1的第三个节点,即链表在调用你的函数后应该变成4 - > 5 - > 9。


    注意

    • 链表至少有两个元素。

    • 所有节点的值都是唯一的。

    • 给定节点不是尾部,它始终是链表的有效节点。

    • 不要从你的功能中返回任何东西。

    本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

    02 解题

    传入的参数node,是要删除掉的节点,也就是需要跳过node。先将当前节点的值用其下一个节点的值覆盖掉,然后node的下一个节点指向其下下个节点。

    public void deleteNode(ListNode node) {
        node.val = node.next.val;
        node.next = node.next.next;
    }
    

    03 小结

    算法专题目前已连续日更超过一个月,算法题文章60+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

    以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

    相关文章

      网友评论

        本文标题:LeetCode算法题-Delete Node in a Lin

        本文链接:https://www.haomeiwen.com/subject/snxjhqtx.html