这是悦乐书的第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+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。
以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!