GitHub:https://github.com/biezhihua/LeetCode
题目
编写一个函数,在给定单链表一个结点(非尾结点)的情况下,删除该结点。
假设该链表为1 -> 2 -> 3 -> 4
并且给定你链表中第三个值为3的节点,在调用你的函数后,该链表应变为1 -> 2 -> 4
。
解法
很简单的一道题,因为给定了将要被删除的节点,而单向链表又无法回溯,因此可以将下一个节点删除,并将值赋给要被删除的节点,这样也可以算作删除了给定的节点。
public void deleteNode(ListNode node) {
if (node == null || node.next == null) {
return;
}
ListNode next = node.next;
node.next = next.next;
node.val = next.val;
}
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
参考: