博客
关于我
程序员面试金典:面试题 02.03. 删除中间节点
阅读量:374 次
发布时间:2019-03-05

本文共 538 字,大约阅读时间需要 1 分钟。

1. 题目

删除单向链表中间节点

2. 描述

实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。

示例

输入:单向链表 a->b->c->d->e->f 中的节点 c结果:该链表变为 a->b->d->e->f

3. 思路

直接删除当前结点,实际上操作的是下一个结点。我们将当前结点的值赋值给下一个结点的值,然后将当前结点的下一个结点指向下一个结点的下一个结点。

4. 实现

public void deleteNode(ListNode node) {    // 将当前节点的值赋值给下一个节点的值    node.val = node.next.val;    // 将当前节点的下一个节点指向下一个节点的下一个节点    node.next = node.next.next;}

5. 代码解释

  • 赋值操作node.val = node.next.val 将当前节点的值赋值给下一个节点的值,这样可以确保数据不丢失。
  • 指针调整node.next = node.next.next 将当前节点的下一个节点指向下一个节点的下一个节点,这样可以直接删除当前节点。
  • 这是一个简单高效的方法,能够在O(1)时间复杂度内完成删除操作。

    转载地址:http://rnjwz.baihongyu.com/

    你可能感兴趣的文章
    普歌-允异团队-HashMap面试题
    查看>>
    还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
    查看>>
    Windows下Python安装与使用
    查看>>
    Font Awesome图标库使用
    查看>>
    程序员应该知道的97件事
    查看>>
    我编程,我快乐—程序员职业规划之道
    查看>>
    剑指 Offer 29. 顺时针打印矩阵
    查看>>
    Web基础应用 NFS服务基础 触发挂载
    查看>>
    create-react-app路由的实现原理
    查看>>
    PSI值
    查看>>
    海思Hi3531DV100开发环境搭建
    查看>>
    JavaScript上传下载文件
    查看>>
    QWaitCondition把异步调用封装成同步调用
    查看>>
    Linux驱动开发之PCIe Host驱动
    查看>>
    Vue.js Element Basic组件使用
    查看>>
    android 头像选择,裁剪全套解决方案,你值得拥有!
    查看>>
    MapReduce
    查看>>
    springboot swagger2
    查看>>
    shell(十)case的几个典型应用
    查看>>
    Linux环境变量配置错误导致命令不能使用(杂谈)
    查看>>