16
社区成员




目录
题目
思路
代码
附录
无环链表相交
题目
如何判断两个无环链表是否相交,相交则返回第一个相交节点,不相交返回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
}
附录
————————————————
版权声明:本文为CSDN博主「魏小言」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34417408/article/details/124467231