删除链表节点
问题
这个题目说的是,你要写一个函数来删除单链表中的一个节点,并且只给你指向那个节点的指针。其中,这个单链表至少有两个节点,并且不会要求你删除尾节点。
比如说,给你的单链表是:
0 -> 1 -> 2 -> 4 -> 8
同时给你一个指针 p,指向节点 2:
0 -> 1 -> 2 -> 4 -> 8
p
删除节点 2 后,这条链表变成:
0 -> 1 -> 4 -> 8
代码
public class AlgoCasts {
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
// Time: O(1), Space: O(1)
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}