美文网首页
160. 相交链表

160. 相交链表

作者: 名字是乱打的 | 来源:发表于2021-11-02 22:40 被阅读0次

思路:

可以直接看图,两个指针分别从A,B开始走,走到头后走对方的路,那么两者第一次相等的时候要么是有公共结点然后相较于共同结点上,要么没有相遇点最后都为null

这是为啥?
因为我们让两个指针走到头后交换线路继续走,其实两者到相遇的时候走的路是一样长的,比如题目中给的相交图

  • 从a出发到相交走的路为 a1,a2,c1,c2,c3,b1,b2,b3,c1
  • 从b出发到相交走的路为b1,b2,b3 ,c1,c2,c3,a1,a2,c1

代码:

 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA==null||headB==null){
            return null;
        }

        ListNode startA=headA,startB=headB;
        while (startA!=startB){
            startA=startA==null?headB:startA.next;
            startB=startB==null?headA:startB.next;
        }
        return startA;
    }

相关文章

  • 160. 相交链表

    160. 相交链表[https://leetcode.cn/problems/intersection-of-tw...

  • TOP 100 51 - 56

    160. 相交链表[https://leetcode-cn.com/problems/intersection-o...

  • 160. 相交链表

    160. 相交链表[https://leetcode-cn.com/problems/intersection-o...

  • LeetCode 156-160

    160. 相交链表[https://leetcode-cn.com/problems/intersection-o...

  • LeetCode 160. 相交链表

    160. 相交链表 编写一个程序,找到两个单链表相交的起始节点。 示例 1: 输入:intersectVal = ...

  • leetcode的题目160

    160. 相交链表 编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表: 在节点 c1 开始相交。...

  • 每周 ARTS 第 6 期

    1. Algorithm 160. 相交链表(简单) 描述: 编写一个程序,找到两个单链表相交的起始节点。 示例:...

  • 160. 相交链表

    160. 相交链表 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示...

  • LeetCode刷题分类之双指针160. 相交链表

    160. 相交链表 题目 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交...

  • 【LeetCode】链表专题

    160.相交链表 返回两个链表相交的节点 19.删除链表的倒数第N个节点 返回链表的头结点。 21.合并两个有序链表

网友评论

      本文标题:160. 相交链表

      本文链接:https://www.haomeiwen.com/subject/vjofzltx.html