思路:

首先使两个链表“一样长”,那么两个指针到了公共的节点一定是走了相同的步数。

操作:p->1,q->2。求len1,len2。使其中长的链表的指针向后移动|len2-len1|步,那么这两个以指针节点为头结点链表长度相等。

/*
public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}*/
public class Solution {public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {int len1=length(pHead1);int len2=length(pHead2);ListNode p=pHead1;ListNode q=pHead2;if(len1>len2){int step=len1-len2;for(int i=0;i<step;i++){ p=p.next;         }}else{int step=len2-len1;for(int i=0;i<step;i++){q=q.next;}}while(p!=null&&q!=null){if(p==q){return p;}else{p=p.next;q=q.next;}}return null;}int length(ListNode pHead){if(pHead==null)return 0;int len=0;ListNode p=pHead;while(p!=null){p=p.next;len++;}return len;}
}

【链表】两个链表的第一个公共结点相关推荐

  1. 剑指offer三十六之两个链表的第一个公共结点

    一.题目 输入两个链表,找出它们的第一个公共结点. 二.思路 如果存在共同节点的话,那么从该节点,两个链表之后的元素都是相同的.也就是说两个链表从尾部往前到某个点,节点都是一样的.我们可以用两个栈分别 ...

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

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

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

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

  4. 剑指offer:两个链表的第一个公共结点

    题目描述 输入两个链表,找出它们的第一个公共结点. 解题思路 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) :va ...

  5. 常考数据结构与算法:两个链表的第一个公共结点

    题目描述 输入两个链表,找出它们的第一个公共结点.(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 面试的时候碰到这道题,很多应聘者的第一反应就是蛮力法:在第 ...

  6. 【刷算法】两个链表的第一个公共结点

    题目描述 输入两个链表,找出它们的第一个公共结点. 分析 考虑到两个链表不一样长的情况,算出两个链表的长度差,然后长的链表要先把长度差走完,然后两个链表再一起走. 代码实现 /*function Li ...

  7. 程序员面试题精选100题(35)-两链表的第一个公共结点[数据结构]

    题目:两个单向链表,找出它们的第一个公共结点. 链表的结点定义为: struct ListNode { int         m_nKey; ListNode*   m_pNext; }; 分析:这 ...

  8. 面试题37:两个链表的第一个公共结点

    题目描述 输入两个链表,找出它们的第一个公共结点.链表结点定义如下: 题目分析 剑指Offer(纪念版)P193 思路三 代码实现 ListNode* FindFirstCommonNode( Lis ...

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

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

  10. [转] 程序员面试题精选100题(35)-找出两个链表的第一个公共结点

    [转] http://hi.baidu.com/evrest/blog/item/bb9365fc7569378ab801a059.html 题目:两个单向链表,找出它们的第一个公共结点. 链表的结点 ...

最新文章

  1. htaccess文件用法收集整理
  2. Linux 下搭建 WordPress 个人站点
  3. 百度造车和RoboTaxi利好自动驾驶?不,利好茅台
  4. Java中活锁和死锁有什么区别?
  5. case --when
  6. 10 张图带你深入理解Docker容器和镜像
  7. 第十七节(is-a 、is-like-a 、has-a,包和 import )
  8. C语言 文件读写 ferror 函数 - C语言零基础入门教程
  9. CVPR 2021 3D视觉相关最新进展分享
  10. java 打包 根目录_java – Maven在jar文件的根目录中打包图像
  11. 12306一直提示网络有问题_春运攻略:西安网友买票遇到的这些问题,这里有答案...
  12. wpf 加载page后启动_App启动之Dyld在做什么
  13. 主键和索引哪个快_字节一面,被连问 MySQL 索引,脸都问绿了。。。
  14. UNIX环境高级编程——记录上锁(fcntl函数)以及死锁检测
  15. 研发项目如何配置看板的任务流转
  16. 第一章:操作系统引论
  17. Samba 常用服务器搭建操作过程
  18. 访问oracle数据库语句,Oracle数据库SQL ——Select 语句使用方法
  19. VMware Ubuntu 联网
  20. Drools-决策表

热门文章

  1. ios应用提交审核出现的问题总结
  2. Bailian4149 课程大作业【DP】
  3. UVA1258 LA4721 Nowhere Money【数学计算】
  4. UVA11309 Counting Chaos【Ad Hoc】
  5. 51Nod-1383 整数分解为2的幂【数列】
  6. Dijkstra算法的C语言程序
  7. 概率图模型(PGM) —— 贝叶斯网络(Bayesian Network)
  8. 心理学家、实验与效应
  9. 负数的移位、有符号数的移位转换为无符号数的移位
  10. matlab 随机函数的使用