37. 两个链表的第一个公共节点(C++版本)
实现代码:
int GetListLength(ListNode* pHead)
{if (nullptr == pHead) return 0;int listLen = 0;ListNode* pCurNode = pHead;while (pCurNode != nullptr){++listLen;pCurNode = pCurNode->pNext;}return listLen;
}
ListNode* GetFirstCommonNode(ListNode* pHead1, ListNode* pHead2)
{if (nullptr == pHead1 || nullptr == pHead2) return nullptr;int list1Len = GetListLength(pHead1);int list2Len = GetListLength(pHead2);ListNode* pCurNode1 = pHead1;ListNode* pCurNode2 = pHead2;// 前进的节点ListNode*& pNeedAdvanceNode = (list1Len > list2Len ? pCurNode1 : pCurNode2);// 前进的步数int advanceLen = list1Len > list2Len ? (list1Len - list2Len) : (list2Len - list1Len);// 节点前进for (int idx = 0; idx < advanceLen; ++idx) pNeedAdvanceNode = pNeedAdvanceNode->pNext; while (pCurNode1 != nullptr && pCurNode2 != nullptr){if (pCurNode1 == pCurNode2) return pCurNode1;pCurNode1 = pCurNode1->pNext;pCurNode2 = pCurNode2->pNext;}return nullptr;
}
37. 两个链表的第一个公共节点(C++版本)相关推荐
- LeetCode-剑指 Offer 52. 两个链表的第一个公共节点
剑指 Offer 52. 两个链表的第一个公共节点 思路一:用set容器,不符合题意 /*** Definition for singly-linked list.* struct ListNode ...
- 【LeetCode】剑指 Offer 52. 两个链表的第一个公共节点
[LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 文章目录 [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 一.双指针 一.双指针 设 "第一个 ...
- 剑指Offer面试题:31.两个链表的第一个公共节点
一.题目:两个链表的第一个公共节点 题目:输入两个链表,找出它们的第一个公共结点. 链表结点定义如下,这里使用C#语言描述: public class Node{public int key;publ ...
- 剑指 Offer 52. 两个链表的第一个公共节点
题目:剑指 Offer 52. 两个链表的第一个公共节点 ,哈哈,我们今天来看一道很简单的题嘛,这是选自剑指 Offer 上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不 ...
- 37. 两个链表的第一个公共结点
为什么80%的码农都做不了架构师?>>> 题目:输入两个链表,找出它们的第一个公共结点. 思路:先遍历两个链表得出它们各自的长度,然后让长链表先走,直到长度和短的一致,然后两个 ...
- 数据结构与算法--两个链表中第一个公共节点
链表中第一个公共节点 公节点定义:同一个节点在两个链表中,并不是节点值相同 题目:输入两个节点,找出他们的第一个公共节点,节点定义如需 /*** 链表元素节点** @author liaojiamin ...
- 剑指Offer+第37题+两个链表的第一个公共节点+java
题目:输入两个链表,找出它们的第一个公共结点. 面试的时候碰到这道题,很多应聘者的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,没遍历到一个结点的时候,在第二个链表上顺序遍历每个结点.如果在第二个 ...
- 【Java】剑指 Offer 52. 两个链表的第一个公共节点
题目 :输入两个链表,找出它们的第一个公共节点. 算法思路 : 首先我们要明确,两个链表相交,是Y形状的 两个链表相交,是next域相同 因为两个单链表的长度是不一样的,所以我们需要让长的那个链表,引 ...
- 算法------ 两个链表的第一个公共节点
题目: 输入两个链表,找出它们的第一个公共节点. 如下面的两个链表: 在节点 c1 开始相交. 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构. 可假定整个链 ...
- 剑指 Offer 52. 两个链表的第一个公共节点(C语言)
*输入两个链表,找出它们的第一个公共节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = ...
最新文章
- STL库(C++11)提供的异步执行方法的方式
- 字典 update()
- 机器学习在稀疏标注数据内部审计中的应用
- MarkdownPad 2 常用快捷键
- 直播预告丨企服企业如何科学搭建规模化获客体系?
- 进程间通信 - 剪贴板实现
- 远程教育英语和计算机没过怎么办,网络教育英语统考能考几次 没考过怎么办?...
- tableau连接mysql_tableau 连接mysql的操作步骤
- kl散度与js散度_数据集相似度度量之KLamp;JS散度
- 27.MySQL Status
- Supervisor 自动管理进程
- Java小游戏的音乐播放
- mysql hugepage_mysql启用hugepage-阿里云开发者社区
- 原生android7rom大小,红米7原生AOSP刷机包(系统刷机完整固件原生安卓9.0)
- 拿到阿里50K offer的数据分析师,都是什么水平?
- python推箱子游戏顶层设计子层设计_python实现推箱子游戏
- 【渝粤教育】广东开放大学 国际法 形成性考核 (37)
- 城市园区NB-IoT智慧井盖解决方案
- 关于waitKey()函数按键无反应情况
- UE4Material_节点——Panner(平移)
热门文章
- 在ubuntu下配置C和C++的编译环境
- 打开带图片的EXCEL文档反应慢 案例解析
- 坚决反对“企业文学化”
- 51.Linux/Unix 系统编程手册(下) -- POSIX IPC 介绍
- 13.Linux 高性能服务器编程 --- 多进程编程
- 50. 模型层 --- dao 层(2)
- 5. Zend_Log
- 15. CSS 表格
- 17. Element dir 属性
- 《数学之美》—PageRank