链表
老年退役选手
BAT打工人
展开
-
如何判断一个链表是否有环
如何判断一个链表是否有环问题陈述 如何判断一个链表是否有环,如果有,则返回第一个进入环的节点,没有则返回null。思路 如果一个链表无环,那么遍历链表一定可以遇到链表的终点;如果链表有环,那么遍历链表就永远在环内转下去。具体如下: 1.设置快慢指针分别为fast和slow。开始,slow和fast都指向链表的头节点head。然后slow每次移动一步,fast每次移动两部,在链表中遍...原创 2019-02-09 19:58:10 · 1808 阅读 · 0 评论 -
如何判断两个无环链表是否相交
如何判断两个无环链表是否相交问题 如何判断两个无环链表是否相交,相交则返回第一个相交节点,不相交返回null。思路 如果两个无环链表相交,那么从相交节点开始,一直到两个链表终止的这段,二者共享。具体如下: 1.链表1从头节点开始,走到最后一个节点,统计链表1的长度记为len1,同时记录链表1的最后一个节点记为end1。 2.链表2从头节点开始,走到最后一个节点,统计链表2的长度...原创 2019-02-09 20:14:13 · 897 阅读 · 0 评论 -
如何判断两个有环链表是否相交
如何判断两个有环链表是否相交问题 如何判断两个有环链表是否相交,相交则返回第一个相交节点,不相交则返回null。思路 我们已经得到了两个链表各自的第一个入环节点,假设链表1的第一个入环节点为loop1,链表2的第一个入环节点为loop2。具体如下: 1.如果loop1 == loop2,拓扑结构如图: 该情况下,考虑链表1从头开始到loop1这一段与链表2从头开始到loop2...原创 2019-02-09 20:39:58 · 1901 阅读 · 0 评论 -
两个单链表相交的一系列问题
两个单链表相交的一系列问题要求 单链表可能有环,可能无环头节点 head1 和 head2, 这两个链表可能相交,也可能不相交。请实现一个函数, 如果两个链表相交, 请返回相交的第一个节点; 如果不相交, 返回 null 即可。 如果链表1的长度为NNN,链表2的长度为MMM,时间复杂度请达到O(N+M)O(N+M)O(N+M),额外的空间复杂度请达到O(1)O(1)O(1)。解答...原创 2019-02-09 20:47:21 · 345 阅读 · 0 评论