题目地址:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/comments/
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。 现有一个链表 --head =[4,5,1,9],它可以表示为: 示例 1: 输入:head = [4,5,1,9], node = 5 输出:[4,1,9] 解释:给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入:head = [4,5,1,9], node = 1 输出:[4,5,9] 解释:给定你链表中值为1的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9. https://leetcode-cn.com/problems/delete-node-in-a-linked-list/comments/
提示: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 不要从你的函数中返回任何结果。
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
static ListNode head = new ListNode(4,new ListNode(5,new ListNode(1,new ListNode(9))));
这道题简单到离谱,官方和大佬们都一样,我也一样。
因为是给到一个中间节点,并且是单向链表,所以只能是将当前节点的值设置为下一节点,并且将当前节点的next指向next节点的next
执行结果:
41 / 41 个通过测试用例
状态:通过
执行用时: 0 ms
内存消耗: 37.5 MB
public static void deleteNodeMe(ListNode node) {
ListNode next = node.next;
node.val = next.val;
node.next = next.next;
}