无环链表相交 —— 解析

魏小言
云原生领域优质创作者
博客专家认证
2022-04-28 10:03:36

目录

题目

思路

代码

附录

无环链表相交
题目
如何判断两个无环链表是否相交,相交则返回第一个相交节点,不相交返回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

...全文
328 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-数据结构与算法 发布问题, 以便更快地解决您的疑问

16

社区成员

发帖
与我相关
我的任务
社区描述
code杂坛:提供初级同学进阶的深度与广度!关注一线 “ 互联网时讯、各技术栈、开源产品、面试技巧......“ 等最新动态
云原生架构设计模式 个人社区
社区管理员
  • 魏小言
  • flybirding10011
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

hi,欢迎加入 “code杂坛” 社区!

code杂坛:提供初级同学进阶的深度与广度!关注一线 “ 互联网时讯、各技术栈、开源产品、面试技巧......“ 等最新动态

在这里你可以:

  • 学习最新大厂技术知识
  • 掌握技能进阶各种技巧
  • 交到志同道合的朋友
  • 获取最新图书资讯
  • 参与活动免费赠书
  • 与我们的作者、译者互动!

 

加入我们成为 code杂坛 的同学

【欢迎联系】

微信公众号:code杂坛

试试用AI创作助手写篇文章吧