标签:for public lis linked 输出 bsp 说明 family oid
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 -- head = [4,5,1,9],它可以表示为:
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.
说明:
这个题乍一看给的题头,立马呆住了,这玩意怎么做啊。就给个节点,没有前驱,那我怎么连?没有链表,我怎么查???
但是巧妙的地方也在这里。
可以把要删除的节点,用该节点的后面节点进行覆盖,然后删掉后面那个节点就好了。
1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { val = x; } 7 * } 8 */ 9 class Solution { 10 public class ListNode { 11 int val; 12 ListNode next; 13 ListNode(int x) { val = x; } 14 } 15 public void deleteNode(ListNode node) { 16 node.val=node.next.val; 17 node.next=node.next.next; 18 } 19 }
标签:for public lis linked 输出 bsp 说明 family oid
原文地址:https://www.cnblogs.com/kexinxin/p/10203102.html