LintCode之在O时间复杂度删除链表
Posted echo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode之在O时间复杂度删除链表相关的知识,希望对你有一定的参考价值。
题目描述:
分析:因为题目要求不能用循环,而且只给了要删除的节点,并没有给链表。所以我无法取得要删除节点的前一个节点,只能在待删除的节点以及下一个节点上做文章。我的思路是:将待删除的节点的下一个节点的值赋给待删除节点,然后让待删除的节点的next指向待删除节点的next的next。
我的代码:
1 /** 2 * Definition for ListNode. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int val) { 7 * this.val = val; 8 * this.next = null; 9 * } 10 * } 11 */ 12 13 14 public class Solution { 15 /* 16 * @param node: the node in the list should be deletedt 17 * @return: nothing 18 */ 19 public void deleteNode(ListNode node) { 20 // write your code here 21 if(node == null) { 22 return ; 23 } 24 node.val = node.next.val; 25 node.next = node.next.next; 26 } 27 }
以上是关于LintCode之在O时间复杂度删除链表的主要内容,如果未能解决你的问题,请参考以下文章
Lintcode372 Delete Node in the Middle of Singly Linked List solution 题解