Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is
Understand the problem:1 -> 2 -> 3 -> 4
and you are given the third node with value 3
, the linked list should become 1 -> 2 -> 4
after calling your function.Since the problem only gives the node to be deleted, it is tricky to solve the problem.
We can duplicate the node to be deleted by copy the node.next val to the node. and remove the node.next.
Code (Java):
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public void deleteNode(ListNode node) { if (node == null) { return; } node.val = node.next.val; node.next = node.next.next; } }
No comments:
Post a Comment