分析:如果两个单向链表有公共的结点,也就是说两个链表从某一结点开始,它们的m_pNext都指向同一个结点。但由于是单向链表的结点,每个结点只有一个m_pNext,因此从第一个公共结点开始,之后它们所有结点都是重合的,不可能再出现分叉。所以,两个有公共结点而部分重合的链表,拓扑形状看起来像一个Y ...
题目描述 输入两个链表,找出它们的第一个公共结点。 节点类: 分析 首先要理解什么是公共节点,并不是两个节点的值相同就是公共节点。 而是在第一链表和第二链表中都存在一个节点,该节点往后的子链表在两个链表中是相同的。 如下图中链表 就是两个链表的公共链表,而节点 就是第一个公共节点。 方法一 最直观就是暴力法,在第一链表上顺序遍历每个节点,每遍历到一个节点,就在第二个链表上顺序遍历每个节点。如果在 ...
2019-03-27 22:28 0 2476 推荐指数:
分析:如果两个单向链表有公共的结点,也就是说两个链表从某一结点开始,它们的m_pNext都指向同一个结点。但由于是单向链表的结点,每个结点只有一个m_pNext,因此从第一个公共结点开始,之后它们所有结点都是重合的,不可能再出现分叉。所以,两个有公共结点而部分重合的链表,拓扑形状看起来像一个Y ...
题目描述 输入两个链表,找出它们的第一个公共结点。 题目分析 我发现关于链表的题都涉及双指针,大家做的时候记得用双指针。 题目理解了就很好做了,比较简单,先在长的链表上跑,直到长的和短的一样长,再一起跑,判断节点相等的时候就可以了。 代码 ...
题目: 解答: 方法一:双指针法 (1)创建两个指针 pA 和 pB,分别初始化为链表 A 和 B 的头结点。然后让它们向后逐结点遍历。 (2)当 pA到达链表的尾部时,将它重定位到链表 B 的头结点 (你没看错,就是链表 B); 类似的,当 pB 到达链表 ...
一、题目:两个链表的第一个公共节点 题目:输入两个链表,找出它们的第一个公共结点。 链表结点定义如下,这里使用C#语言描述: 二、解题思路 2.1 蛮力法 碰到这道题,很多人的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,每遍历到一个结点 ...
,我们如果动手画一下一般的链表图就能够发现两个链表的第一个公共节点之后的样子一定是如下表示(由此可以发现有 ...
题目:两个单向链表,找出它们的第一个公共结点。 链表的结点定义为: struct ListNode { int m_nKey; ListNode* m_pNext; }; 分析:这是一道微软的面试题。微软非常喜欢与链表相关的题目,因此在微软 ...
62.找出链表的第一个公共结点。题目:两个单向链表,找出它们的第一个公共结点 思路: 1.暴力法 但时间复杂度太高 o(n*m) 2.如果两个链表有公共节点,则从该公共节点起,后面的节点均为公共的,即这两个链表在第一个公共节点交叉,然后形成一个Y字型,因为两个链表长度不一定一样 ...