删除链表中的节点(简单)
2020年6月6日
题目来源:力扣
解题
这道题,咋一看很简单,但是按以往的思路,我们会用删除的节点的前一个节点来指向删除节点的后一个节点来起到删除的效果。如图:
但这道题,只给你提供了一个被删除的节点,没有整条链表,自然就没有删除节点的前一个节点了。
那如果我用
node.next=node.next.next;
结果会是什么?如图:
删掉的会是9这个节点,那1和9的区别只是数值不同,如果我一开始把1替换成9的数值,如图:
那就是变相的删除了1这个节点。至此解决。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
node.val=node.next.val;
node.next=node.next.next;
}
}