无环链表相交 —— 解析
目录
题目
思路
代码
附录
无环链表相交
题目
如何判断两个无环链表是否相交,相交则返回第一个相交节点,不相交返回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
相关推荐
iOS面试题-C部分
包含C语言, 问题与答案清晰明了,如果有什么问题欢迎私信讨论!
最强解析面试题:无环链表相交
无环链表相交 题目 如何判断两个无环链表是否相交,相交则返回第一个相交节点,不相交返回null。 思路 双指针,分别遍历两个链表,若有相交节点,则会在遍历第二个链表时校验出;方法返回的是相交节点。 关注我 code 杂坛,了解更多...... 代码 package main import "fmt" func main () { a:=new(ListNode) a.Val = 0 b:=new(ListNode) b.Val = 1 ...
Google等公司数据结构+算法面试.pdf
Google等公司数据结构+算法面试.pdf
C++将二叉树转为双向链表及判断两个链表是否相交
主要介绍了C++将二叉树转为双向链表及判断两个链表是否相交的方法,文中还给出了求两个链表相交的第一个节点列的实现方法,需要的朋友可以参考下
C语言面试题
C语言面试题


