使用的链表相关定义及函数在:链表最小结构(C++版本)

实现原理:

使用两个指针pFrontNode、pBackNode,它们都指向头节点。
每次让pFrontNode向前走2步,pBackNode向前走1步。
直到pFrontNode走到最后一个节点停止,pBackNode所指的即为中间节点。

实现代码:

ListNode* GetMiddleNodeFromTail(const MyList& myList)
{if (nullptr == myList.pHead) return nullptr;ListNode* pFrontNode = myList.pHead;ListNode* pBackNode = myList.pHead;while (pFrontNode->pNext != nullptr){if (pFrontNode->pNext != nullptr) pFrontNode = pFrontNode->pNext;if (pFrontNode->pNext != nullptr) pFrontNode = pFrontNode->pNext;pBackNode = pBackNode->pNext;}return pBackNode;
}

15. (附加)链表中间节点(C++版本)相关推荐

  1. 剑指offer面试题15:链表中倒数第K个节点

    题目:输入一个链表,输出该链表的倒数第K个节点.为了符合大多数人的习惯,本题从1开始计数,即链表尾节点是倒数第一个节点. 解题思路: 解法一:一般情况下,单向链表无法从后一个节点获取到它前面的节点,可 ...

  2. 牛客网在线编程专题《剑指offer-面试题15》链表中倒数第k个节点

    题目链接: https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&tqId=11167& ...

  3. 剑指offer:面试题18. 删除链表的节点

    题目:删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], ...

  4. 【Java】LeetCode 876 获取链表中间节点

    题目:给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 解题思路 : 获取链表中间节点,算法思想是利用快慢指针 : 1.如上图分析,奇数节点链 ...

  5. 《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体

    准备一些链表和节点的实体,方便后面使用 java代码 /*** @Description:构造一个链表实体,方便后续构造链表* @Author: lizhouwei* @CreateDate: 201 ...

  6. Leetcode 24.两两交换链表的节点 (每日一题 20210624)

    给定一个链表,两两交换其中相邻的节点,并返回交换后的链表.你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换.示例 1:输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 ...

  7. LeetCode-剑指 Offer 18. 删除链表的节点

    剑指 Offer 18. 删除链表的节点 思路:用一个头节点,以及pre,cur双指针 /*** Definition for singly-linked list.* struct ListNode ...

  8. 双向链表删除节点时间复杂度_删除链表的节点(剑指offer第十七题)

    删除链表的节点 题目:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点.返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], ...

  9. 删除链表重复节点 python_java删除链表中重复的节点(保留一个节点)

    两种方法实现: package cn.exercise.list; import java.util.HashMap; /** * 删除链表重复节点(重复节点只保留一个) */ public clas ...

  10. 如何删除链表的最后一个节点_面试:删除链表的节点

    给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点.返回删除后的链表的头节点.注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5 输出: [4 ...

最新文章

  1. angular路由笔记_Angular2学习笔记——路由器模型(Router)
  2. hbuilder怎么做登录界面_新手会计不懂如何报税?一套标准网上报税流程演示,教你怎么纳税申报...
  3. 在excel中求算风向和风速范围的函数,用origin做风向玫瑰图
  4. 黑苹果鼠标不动_MacOS系统:解决黑果睡眠唤醒后假死问题(如键盘鼠标无反应等)...
  5. 【Paper】2021_Distributed sliding mode control for time-varying formation tracking of multi-UAV system
  6. vue注册组件template传id
  7. Quorum入门2.0:Quorum-企业以太坊-开始尝试
  8. Kotlin高仿微信-第14篇-单聊-视频通话
  9. 法律人工智能的前世今生,附熊明辉教授简历(公号回复“法律AI”或“熊明辉AI”下载PDF典型资料,欢迎转发、赞赏支持科普)
  10. React工作74:onRef在react中的使用
  11. base64,base32bit加密解密
  12. Oracle数据库PL SQL开发、Oracle-SQL开发习题答案
  13. 果园篱笆c语言算法,天然篱笆墙:果园栽种这几种树
  14. 【Python】Pandas Excel file format cannot be determined, you must specify an engine manually.报错【已解决】
  15. 图形相关知识(显示)
  16. 程序员与公务员之争,到底选啥?
  17. 分布式 —— 基于Raft算法的KV服务
  18. Python读写EXCEL文件常用方法大全
  19. java advanced image_关于Java Advanced Imaging(JAI)的一点积累 | 学步园
  20. NOIP 模拟 机房欢乐WAK赛

热门文章

  1. 「深度」物料成本不到1500的iPhone6s凭什么5288元起售?
  2. 1.4. network
  3. DanmuManager 一个简单的弹幕工具
  4. 开源docker管理平台rancher 安装部署
  5. 百度霸屏技术的源码发布
  6. hadoop工作流引擎azkaban
  7. 配置eclipse插件
  8. 宽带连接不上,拨号宽带连接的创建。
  9. 20.docker events
  10. 12.Linux/Unix 系统编程手册(上) -- 系统和进程信息