Leetcode——237. 删除链表中的节点(Java)
刚开始看到这个题目的时候,考虑的就是找到该节点的前一个节点pre,用pre.next = node.next;然后一看题目的解题区,既没给输入的数组,也没给head,就是node
然后看了题解,题解说用“与下一节点交换”的方法,其实理解起来这个题真的挺简单的,因为给出的节点一定不是末尾节点,因此一定ok
为了更好理解,画了一个图
代码如下:
/**
* 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
node.val = node.next.val;
//接下来相当于把下一节点删除
node.next = node.next.next;
}
}