leetcode 237. 删除链表中的节点

题目

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 -- head = [4,5,1,9]

示例 1:
输入: head = [4,5,1,9], node = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

传送门 LeetCode 237

思路

  • 要删除该节点,则只需将后一个元素值覆盖此元素,再将指针指向下下个即可。
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public void deleteNode(ListNode node) {
         if (node == null) return;
        node.val = node.next.val;// 4 1 1 9
        node.next = node.next.next;
    }
}

你可能感兴趣的:(leetcode 237. 删除链表中的节点)