首页 > 代码库 > 237. Delete Node in a Linked List
237. 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.
Solution 1:
思路:把所有之后的节点都左移,然后删掉最后一个节点。麻烦了。
/** * 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) { ListNode copy=node; while(node!=null&&node.next!=null) { copy=node; node.val=node.next.val; node=node.next; } copy.next=null; }}
Solution 2:
看了下disucssion,其实只要把右边的节点交换过来然后删掉右边的一个节点就可以了。满满都是套路啊
public void deleteNode(ListNode node) { node.val=node.next.val; node.next=node.next.next;}
237. Delete Node in a Linked List
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。