文章目录
- 前言
- 题目
- 题目决议
- 代码
前言
朋友们,千万不要被 题目苏坡迷惑了!认清链表的本质!在单向链表中,没有前驱节点是不可能洗掉节点之后,还能保持整个链表的连接性!
那么,我们该怎么思考这题? 首先,题目要洗掉node节点,主要是想节点val值,也就是在遍历链表打印val值的时候,不想让 node.val 值 被打印,
?
#解题思维
在理解题目的意思后,就很清楚了,题目只是想洗掉node节点的val值,又不影响链表的链接,
那我们就将node.next.val值 拷贝到 node.val 值,也就是说使 node.val = node.next,val 后面我们再利用,单向链表洗掉的节点的方法,覆写洗掉node.next 节点(node的下一个节点),
?
代码
class Solution {
public void deleteNode(ListNode node) {
if(node == null || node.next == null){
// 防止 node 为null,另外 node节点不能是最后一个节点(node.next == null)
// 如果是这两种情况,那就没必要 “洗掉” 节点了
return;
}
node.val = node.next.val;
node.next= node.next.next;
}
}
0 评论