怎么说呢,这道题不难,但重点在于理解。不然就像我一样gg(想了好久才想通,已哭晕在厕所)觉得需要记录一下这道题。
- 分析:
删除单向链表中间的某个节点,既不是头也不是尾(这个非常关键),且只能访问该节点(这又是一个坑,说明不能遍历),而且传入的参数是node,而不是head。
- 解法
既然只能访问当前节点,那就只好出此下策了。杀不掉我,我就变成你,然后再干掉你,就等于杀死了自己。node.val=node.next.val;node.next=node.next.next;
下面结合图来理解一下
代码如下:
class Solution {
public void deleteNode(ListNode node) {
node.val=node.next.val;
node.next=node.next.next;
}
}