最强解析面试题:无环链表相交
Posted 魏小言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:无环链表相交相关的知识,希望对你有一定的参考价值。
目录
无环链表相交
题目
如何判断两个无环链表是否相交,相交则返回第一个相交节点,不相交返回null。
思路
双指针,分别遍历两个链表,若有相交节点,则会在遍历第二个链表时校验出;方法返回的是相交节点。
关注我 code 杂坛,了解更多......
代码
package main
import "fmt"
func main ()
a:=new(ListNode)
a.Val = 0
b:=new(ListNode)
b.Val = 1
c:=new(ListNode)
c.Val = 2
d:=new(ListNode)
d.Val = 3
e:=new(ListNode)
e.Val = 4
a.Next= b
b.Next = c
c.Next = e
d.Next = e
fmt.Println("hello https://tool.lu/",IsSame(a,d))
type ListNode struct
Val int
Next *ListNode
func IsSame(a,b *ListNode) *ListNode
if a == nil || b == nil
return nil
s,f:=a,b
for s != f
if s == nil
s = b
else
s = s.Next
if f == nil
f = a
else
f = f.Next
return s
附录
除了流动,还需要拉动,拉动才是服务产品的根本价值。
关注我 code 杂坛,了解更多......
以上是关于最强解析面试题:无环链表相交的主要内容,如果未能解决你的问题,请参考以下文章