原文:两链表求公共节点

引言 其实这道题目早在剑指Offer上就已经出现过,参见以前的这篇文章,但后来July前辈也有一片文章讲过类似问题,对比之下,之前的解法还不够全面,没有考虑到所有情况,这篇文章把这道题目作一个梳理。 题目总结起来是这样: 输入两个链表,判断它们是否有公共节点,返回bool。 引申:找出它们的第一个公共节点的指针,如果没有公共节点则返回NULL。 链表的定义如下: 输出函数: 首先需要考虑空指针输入 ...

2014-07-03 11:03 0 7805 推荐指数:

查看详情

输入链表,找出他们的第一个公共节点

分析:如果个单向链表公共的结点,也就是说链表从某一结点开始,它们的m_pNext都指向同一个结点。但由于是单向链表的结点,每个结点只有一个m_pNext,因此从第一个公共结点开始,之后它们所有结点都是重合的,不可能再出现分叉。所以,个有公共结点而部分重合的链表,拓扑形状看起来像一个Y ...

Sun Apr 20 03:23:00 CST 2014 0 4706
剑指offer(36)链表中的第一个公共节点

题目描述 输入链表,找出它们的第一个公共结点。 题目分析 我发现关于链表的题都涉及双指针,大家做的时候记得用双指针。 题目理解了就很好做了,比较简单,先在长的链表上跑,直到长的和短的一样长,再一起跑,判断节点相等的时候就可以了。 代码 ...

Mon Apr 09 13:14:00 CST 2018 5 452
面试题52. 链表的第一个公共节点

题目: 解答: 方法一:双指针法 (1)创建个指针 pA 和 pB,分别初始化为链表 A 和 B 的头结点。然后让它们向后逐结点遍历。 (2)当 pA到达链表的尾部时,将它重定位到链表 B 的头结点 (你没看错,就是链表 B); 类似的,当 pB 到达链表 ...

Sun May 10 02:53:00 CST 2020 0 719
剑指Offer面试题:31.链表的第一个公共节点

一、题目:链表的第一个公共节点 题目:输入链表,找出它们的第一个公共结点。   链表结点定义如下,这里使用C#语言描述: 二、解题思路 2.1 蛮力法   碰到这道题,很多人的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,每遍历到一个结点 ...

Sun Sep 20 08:23:00 CST 2015 1 6685
二叉树系列 - 两节点的最低公共祖先,例 剑指Offer 50

前言 本篇是对二叉树系列中最低公共祖先类题目的讨论。 题目 对于给定二叉树,输入个树节点它们的最低公共祖先。 思考:这其实并不单单是一道题目,解题的过程中,要先弄清楚这棵二叉树有没有一些特殊的性质,这些特殊性质可以便于我们使用最优的方式解题。 传统二叉树的遍历 ...

Mon Jul 07 08:36:00 CST 2014 0 8428
找出链表的第一个公共节点

62.找出链表的第一个公共结点。题目:个单向链表,找出它们的第一个公共结点 思路: 1.暴力法 但时间复杂度太高 o(n*m) 2.如果链表公共节点,则从该公共节点起,后面的节点均为公共的,即这链表在第一个公共节点交叉,然后形成一个Y字型,因为链表长度不一定一样 ...

Sat Dec 05 01:12:00 CST 2015 0 1707
剑指offer解题报告(Java版)——找到链表的第一个公共节点 37

引言 这个问题一种常想到的方法就是层循环遍历,外层循环遍历链表A,对A中每个节点,遍历链表B,如果在B中找到,说明这个节点是第一个公共节点,但是这样的方法时间复杂为mn,一般是不允采用的 分析问题 所以我们需要分析更深层次的问题,找到其中的规律 ...

Thu Apr 30 23:53:00 CST 2015 1 2231
链表中的倒数第K个节点

  链表的倒数第K个节点:主要思路设置个指针,刚开始都指向链表的第一个节点,第一个指针先走k-1步,然后个一块走,直到第一个指针的下一位为nullptr,则第二个指针所指的位置就是倒数第k个节点。   在编程书上看见这个方法,自己画了个链表试了试果然是这样,但是这是个什么原理 ...

Fri Apr 15 03:25:00 CST 2016 0 5162
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM