LeetCode 237. Delete Node in a Linked List
原题链接在这里:https://leetcode.com/problems/delete-node-in-a-linked-list/
题目:
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 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.
题解:
单链表不能往回走,把下一个点复制到当前点,然后去掉下一个点.
Time Complexity: O(1). Space: O(1).
AC Java:
1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { val = x; } 7 * } 8 */ 9 class Solution { 10 public void deleteNode(ListNode node) { 11 if(node.next == null){ 12 node = null; 13 return; 14 } 15 16 node.val = node.next.val; 17 node.next = node.next.next; 18 } 19 }