剑指offer-两个链表的第一个公共节点
来源:互联网 发布:python和大数据挖掘 编辑:程序博客网 时间:2024/05/21 14:49
题目延伸:编程之美中的求两个节点是否相交:将两个节点串在一起,若有节点,串在一起的节点就会出现环,利用一二不长不等,两个节点在环中必然相遇。
本题描述:输入两个链表,找出它们的第一个公共结点。
分析:
一个简单的方法是:首先遍历两个链表得到它们的长度,就能知道哪个链表比较长,以及长的链表比短的链表多几个节点。在第二次遍历的时候,先在较长的节点上走若干步,接着同时在两个链表上遍历,找到的第一个相同的节点就是它们的公共的节点。
public class Solution { public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {int length1=getListLength(pHead1);int length2=getListLength(pHead2);int lengthDif=length1-length2;ListNode plong=pHead1;ListNode pshort=pHead2;if(length2>length1){plong=pHead2;pshort=pHead1;lengthDif=length2-length1;}for(int i=0;i<lengthDif;i++){plong=plong.next;}while(plong!=null&&pshort!=null&(plong!=pshort)){plong=plong.next;pshort=pshort.next;}return plong; }private int getListLength(ListNode pHead) {// TODO Auto-generated method stubint length=0;ListNode node=pHead;while(node!=null){length++;node=node.next;}return length;}}
0 0
- 剑指offer-两个链表的第一个公共节点
- 【剑指offer】两个链表的第一个公共节点
- 剑指offer-两个链表的第一个公共节点
- 【剑指offer】两个链表的第一个公共节点
- 剑指offer------两个链表的第一个公共节点
- 《剑指offer》两个链表的第一个公共节点
- 剑指offer-两个链表的第一个公共节点
- 剑指offer--两个链表的第一个公共节点
- 剑指offer 两个链表的第一个公共节点
- 【刷题剑指offer】两个链表的第一个公共节点
- 剑指offer面试题37 两个链表的第一个公共节点
- [剑指offer][面试题37]两个链表的第一个公共节点
- 剑指offer 面试题37—两个链表的第一个公共节点
- 剑指offer之两个链表的第一个公共节点
- 剑指offer 37 - 两个链表的第一个公共节点
- 《剑指Offer》面试题:寻找两个链表的第一个公共节点
- 剑指offer系列之三十五:两个链表的第一个公共节点
- 剑指offer 37:求两个链表的第一个公共节点
- 3D Touch
- JAVA识别身份证号码,H5识别身份证号码,tesseract-ocr识别(一)
- LUA string库详解
- 纪录一些很不错的文章
- C语言实现顺序表的所有操作代码
- 剑指offer-两个链表的第一个公共节点
- 深入理解requestAnimationFrame
- 【数论】[codevs 2952 细胞分裂]快速幂
- 基于数字图像处理的人民币碎片拼接
- MapReduce: combiner
- Practical Rendering and Computation with Direct3D 11学习笔记(1.4)
- Java线程详解
- 对不可用for update 的数据库管理工具如何复制记录
- String, StringBuilder与StringBuffer的区别