题目描述

输入两个链表,找出它们的第一个公共结点。

解题思路

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};*/
class Solution {
public:// 遍历链表得到其长度unsigned int GetLen(ListNode* pHead){unsigned int len=0;ListNode* pC1 = pHead;while(pC1!=NULL){len++;pC1=pC1->next;}return len;}ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {int len1=GetLen(pHead1); int len2=GetLen(pHead2);int diflen=len1-len2;// 定义长链表和短链表ListNode* plong = pHead1;ListNode* pshort = pHead2;    if(len2>len1){diflen=len2-len1;plong = pHead2;pshort = pHead1; }// 长链表先走其长度差值步int cnt=0;while(cnt<(len1-len2)){plong=plong->next;cnt++;}// 一起走,知道遇到公共节点并返回while(plong!=NULL && pshort!=NULL){if(plong==pshort) return plong;plong=plong->next;pshort=pshort->next;}}
};

剑指offer:两个链表的第一个公共结点相关推荐

  1. [剑指offer] 两个链表的第一个公共结点

    本文首发于我的个人博客:尾尾部落 题目描述 输入两个链表,找出它们的第一个公共结点. 解题思路 如果两个链表存在公共结点,那么它们从公共结点开始一直到链表的结尾都是一样的,因此我们只需要从链表的结尾开 ...

  2. 剑指offer_两个链表的第一个公共结点

    题目描述 输入两个链表,找出它们的第一个公共结点. 解题思路: 遇到这种题目,瞬间想到HashMap- 用一个HashMap依次记录第一个链表的结点: 遍历第二个链表结点,一旦在HashMap中找到, ...

  3. 剑指offer——面试题37:两个链表的第一个公共结点

    剑指offer--面试题37:两个链表的第一个公共结点 20180906整理 Solution1: 时间复杂度为O(n2)O(n2)O(n^2)的垃圾算法 /* struct ListNode {in ...

  4. 《剑指Offer》Java刷题 NO.36 两个链表的第一个公共结点(链表,等长拼接法,长者先行法,辅助栈)

    <剑指Offer>Java刷题 NO.36 两个链表的第一个公共结点(链表,等长拼接法,长者先行法,辅助栈) 传送门:<剑指Offer刷题总目录> 时间:2020-06-19 ...

  5. 《剑指offer》-- 两个链表的第一个公共结点、链表中环的入口结点、删除链表中的重复结点

    一.两个链表的第一个公共结点: 1.题目: 输入两个链表,找出它们的第一个公共结点. 2.解题思路: (1)第一种:找出两个链表的长度,然后让长的链表先走两个链表的长度差,接着两个链表一起走. (2) ...

  6. [剑指offer]面试题37:两个链表的第一个公共结点

    面试题37:两个链表的第一个公共结点 题目:输入两个链表,找出它们的第一个公共结点.链表结点定义如下: struct ListNode {int val;ListNode *next;ListNode ...

  7. c++ 链表_剑指offer系列——52. 两个链表的第一个公共结点

    题目链接门 两个链表的第一个公共结点_牛客网​www.nowcoder.com 题目描述 输入两个链表,找出它们的第一个公共结点.(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保 ...

  8. 36 剑指offer--链表--两个链表的第一个公共结点

                               两个链表的第一个公共结点 题目 输入两个链表,找出它们的第一个公共结点. 思路 这道题和160.Intersection of Two Linke ...

  9. 链表2--JZ25复杂链表的复制JZ36两个链表的第一个公共结点JZ55链表中环的入口结点JZ56删除链表中重复的结点

    JZ25复杂链表的复制 >>点击此链接 JZ36两个链表的第一个公共结点 题目描述 输入两个无环的单链表,找出它们的第一个公共结点.(注意因为传入数据是链表,所以错误测试数据的提示是用其他 ...

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

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

最新文章

  1. iOS开发里面的4个层次
  2. python抢红包random实现_python写红包的原理流程包含random,lambda其中的使用和见简单介绍...
  3. [Ext JS 4] 动态加载
  4. JNI编程中数据类型转换的方法
  5. appium 原理解析(转载雷子老师博客)
  6. AfxGetMainWnd 函数
  7. NVIDIA Nsight Compute 界面认识
  8. 弹性力学方程 有限差分法matlab,泊松方程的有限差分法的MATLAB实现
  9. python判断一个数是否为水仙花数_Python判断一个三位数是否为水仙花数的示例
  10. arcgis地理配准_【更新69篇】地理数据科学技术文章合集,欢迎大家点赞、在看、转发三连!...
  11. html 给表格添加背景,HTML中新建表格怎么加背景
  12. ebyte Lora 转 4G 透传通讯测试
  13. 强化学习读书笔记(一)
  14. 30款Linux 高性能网络开发库开源软件
  15. java 如何初始化数组_java中初始化数组的三种方式分别是什么
  16. 中标麒麟操作系统安装MySQL5.7.22
  17. 在家用电饼铛自制潮汕美食肠粉过程,想学的赶紧来看
  18. 开贝修图最新版 免狗全功能版
  19. 【教程】爱玩吧QQ空间说说刷赞网怎么刷秒赞教程
  20. 企业如何建立数据分类分级制度

热门文章

  1. Flume Sinks官网剖析(博主推荐)
  2. Ubuntu更新时遇到/boot空间不足
  3. Android Json解析方法
  4. linuxmysql乱码
  5. 【红黑vip提权教程和饭客vip2010***教程全套】
  6. 绝地服务器维护7月5日,绝地求生7月5日更新到几点 吃鸡更新维护公告
  7. Java多线程编写简易飞机大战(一)
  8. 线程的挂起是错误的概念实际是线程的阻塞,挂起只针对进程,将进程挂起会将进程从内存空间交换到磁盘空间的过程
  9. 百度人脸检测与识别项目资源
  10. 用g++编译C++ 的流程示例如下