实现代码:

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++版本)相关推荐

  1. LeetCode-剑指 Offer 52. 两个链表的第一个公共节点

    剑指 Offer 52. 两个链表的第一个公共节点 思路一:用set容器,不符合题意 /*** Definition for singly-linked list.* struct ListNode ...

  2. 【LeetCode】剑指 Offer 52. 两个链表的第一个公共节点

    [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 文章目录 [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 一.双指针 一.双指针 设 "第一个 ...

  3. 剑指Offer面试题:31.两个链表的第一个公共节点

    一.题目:两个链表的第一个公共节点 题目:输入两个链表,找出它们的第一个公共结点. 链表结点定义如下,这里使用C#语言描述: public class Node{public int key;publ ...

  4. 剑指 Offer 52. 两个链表的第一个公共节点

    题目:剑指 Offer 52. 两个链表的第一个公共节点 ,哈哈,我们今天来看一道很简单的题嘛,这是选自剑指 Offer 上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不 ...

  5. 37. 两个链表的第一个公共结点

    为什么80%的码农都做不了架构师?>>>    题目:输入两个链表,找出它们的第一个公共结点. 思路:先遍历两个链表得出它们各自的长度,然后让长链表先走,直到长度和短的一致,然后两个 ...

  6. 数据结构与算法--两个链表中第一个公共节点

    链表中第一个公共节点 公节点定义:同一个节点在两个链表中,并不是节点值相同 题目:输入两个节点,找出他们的第一个公共节点,节点定义如需 /*** 链表元素节点** @author liaojiamin ...

  7. 剑指Offer+第37题+两个链表的第一个公共节点+java

    题目:输入两个链表,找出它们的第一个公共结点. 面试的时候碰到这道题,很多应聘者的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,没遍历到一个结点的时候,在第二个链表上顺序遍历每个结点.如果在第二个 ...

  8. 【Java】剑指 Offer 52. 两个链表的第一个公共节点

    题目 :输入两个链表,找出它们的第一个公共节点. 算法思路 : 首先我们要明确,两个链表相交,是Y形状的 两个链表相交,是next域相同 因为两个单链表的长度是不一样的,所以我们需要让长的那个链表,引 ...

  9. 算法------ 两个链表的第一个公共节点

    题目: 输入两个链表,找出它们的第一个公共节点. 如下面的两个链表: 在节点 c1 开始相交. 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构. 可假定整个链 ...

  10. 剑指 Offer 52. 两个链表的第一个公共节点(C语言)

    *输入两个链表,找出它们的第一个公共节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = ...

最新文章

  1. STL库(C++11)提供的异步执行方法的方式
  2. 字典 update()
  3. 机器学习在稀疏标注数据内部审计中的应用
  4. MarkdownPad 2 常用快捷键
  5. 直播预告丨企服企业如何科学搭建规模化获客体系?
  6. 进程间通信 - 剪贴板实现
  7. 远程教育英语和计算机没过怎么办,网络教育英语统考能考几次 没考过怎么办?...
  8. tableau连接mysql_tableau 连接mysql的操作步骤
  9. kl散度与js散度_数据集相似度度量之KLamp;JS散度
  10. 27.MySQL Status
  11. Supervisor 自动管理进程
  12. Java小游戏的音乐播放
  13. mysql hugepage_mysql启用hugepage-阿里云开发者社区
  14. 原生android7rom大小,红米7原生AOSP刷机包(系统刷机完整固件原生安卓9.0)
  15. 拿到阿里50K offer的数据分析师,都是什么水平?
  16. python推箱子游戏顶层设计子层设计_python实现推箱子游戏
  17. 【渝粤教育】广东开放大学 国际法 形成性考核 (37)
  18. 城市园区NB-IoT智慧井盖解决方案
  19. 关于waitKey()函数按键无反应情况
  20. UE4Material_节点——Panner(平移)

热门文章

  1. 在ubuntu下配置C和C++的编译环境
  2. 打开带图片的EXCEL文档反应慢 案例解析
  3. 坚决反对“企业文学化”
  4. 51.Linux/Unix 系统编程手册(下) -- POSIX IPC 介绍
  5. 13.Linux 高性能服务器编程 --- 多进程编程
  6. 50. 模型层 --- dao 层(2)
  7. 5. Zend_Log
  8. 15. CSS 表格
  9. 17. Element dir 属性
  10. 《数学之美》—PageRank