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 -> 4after 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 }

类似Remove Linked List Elements.

posted @ 2015-11-15 05:50  Dylan_Java_NYC  阅读(145)  评论(0编辑  收藏  举报