面试题13:在O(1)时间删除链表结点

题目描述

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.

代码实现

/**
 * 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) {
        //先让该结点的值等于下一个结点的值12345->12445
        node.val = node.next.val;
        //再把下一个结点删除12445->1245
        node.next = node.next.next;
    }
}

主要思路

很简单,只需要把当前结点的值复制为下一个结点的值,然后删除下一个结点,就相当于把当前结点删除了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目:给定单链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 解法 正常删除单链表的一个结点,需...
    qmss阅读 388评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 人生的际遇就像酒,有的烈有的苦。 关键是,要有新开一局的勇气和能力。当往事已成云烟,且由它慢慢飘散。该诀别的时候,...
    迷迭香草阅读 534评论 0 0
  • 我看见 大雾浓浓的南充小路 我看见 温暖感动的春节祝福 我看见 歌声中我们的相遇 我看见 热恋下我们的誓言 我看见...
    至若春和景明丶阅读 203评论 0 1
  • 什么是习惯呢?习惯是别人做着不顺手的事情你做着却轻松自然。就拿练习瑜伽来说吧,有的人觉得练习瑜伽很不习惯,可有的人...
    鹏鹏YH阅读 272评论 0 0