上一节聊了判断两个【无环】链表是否相交,那么如果相交,怎么找到相交结点呢?...
分类:
编程语言 时间:
2015-04-26 10:58:25
阅读次数:
179
解决方案:1.找出链表1的环入口节点a1,链表2的环入口节点a2;2.如果a1=a2; 说明两个链表可能在入环之前或者入环第一个节点相交;将a1,a2作为两个链表的最后一个节点,转化为不带环的链表相交;其实在这种情况下已经说明两个链表已经相交了。3.如果a1!=a2;以a1为基准节点进行while循...
分类:
其他好文 时间:
2015-04-15 23:14:40
阅读次数:
247
由于单链表的特殊性,如果某一链表与另一链表相交,那么从相交的节点开始,以后两个链表的每个节点都相同,因此判断两个链表是否相交,只需判断每条链表的最后一个节点是否相同即可!#include "stdafx.h"
#include
using namespace std;struct list_node
{
int data;
list_node* next;
};...
分类:
其他好文 时间:
2015-03-20 23:50:57
阅读次数:
315
思路:
暴力解法,将第一个链表的所有结点放进HashSet,然后看第二个链表从头开始的第一个存在HashSet中的元素就是两个链表相交的地方。
方法不够好,题目说的空间复杂度最好为O(1)...
分类:
其他好文 时间:
2015-02-07 17:32:48
阅读次数:
230
题目:有两个带头结点的单链表L1,L2,判断它们是否相交(它们中是否有相同的结点)
解题思路:
L1,L2中任何一个链表为空它们不相交
因为单链表中可能有环,所以分3种情况讨论
1、L1,L2中都没有环,那么可以通过判断它们中最后一个结点是否相同,来判断它们是否相交
2、L1,L2中一个有环,一个没有环,那么它们一定不相交
3、L1,L2中都有环,那么只有当它们的环相同时,它们才相...
分类:
其他好文 时间:
2015-01-12 17:41:33
阅读次数:
175
如何判断是否有交点?
两个单向链表,如果有交点,那么它们最后的一个结点必定是同一个结点。我们可以找到链表最后一个结点,比较它们是否是同一个结点。
如果两个链表有交点,如何判断交点的位置呢?
把一个链表中的每一个结点与另一个链表的中每一个结点做比较,如果找到相同的,那么这个相同的就是交点了。但是这个算法的时间复杂度为O(mn)。
如果两个链表相交,那么交点的位置到链表末端...
分类:
其他好文 时间:
2014-12-19 17:27:08
阅读次数:
146
两个链表的第一个公共结点
两个链表相交成Y型。
#include
#include
using namespace std;
struct ListNode{
int value;
ListNode* next;
};
unsigned int getListLength(ListNode* pHead){
unsigned int length = 0;
...
分类:
其他好文 时间:
2014-12-10 18:03:58
阅读次数:
157
原题链接:https://oj.leetcode.com/problems/intersection-of-two-linked-lists/
题目大意:给定两个单链表,若相交则找出第一个交点。
解题思路:如果两个无环单链表相交,则必定尾部结点为同一个结点。设定两个指针,若从两个链表的表头同时遍历,很明显不能找到交点。但若将较长的链表截去长出来的一部分,然后两个指针同时遍历,则第一次两个指针相...
分类:
其他好文 时间:
2014-12-01 22:36:59
阅读次数:
199
链表的经典问题如何判断两个单链表是否相交,如果相交,找出交点(两个链表都不存在环)如果两个单链表相交,那应该呈“Y”字形,也就是从交点以后的部分是两个链表的公共节点。所以,判断是否相交只要看两个链表的最后一个节点是否为同一个即可。那么如何找到交点呢?设两个单链表的长度分别为L1、L2,(假设L1>L...
分类:
其他好文 时间:
2014-11-24 16:43:10
阅读次数:
334
判读两个链表是否相交以及如果相交它们的第一个公共节点的问题,主要分这么几种情况: 1)两个链表均不含有环 2)两个链表均含有环 对于一个有环一个没有,那么它们即不相交也没有公共节点 首先定义节点的结构struct Node{int value;Node *next;}; 判断链表是否有环...
分类:
其他好文 时间:
2014-11-10 01:06:06
阅读次数:
340