码迷,mamicode.com
首页 > 其他好文 > 详细

相交链表解法

时间:2020-12-07 12:04:20      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:intersect   相交   遍历   code   java   list   lan   section   解题思路   

相交链表解法

在面试中被问到这个问题,没有想出来,遂去LeetCode进行查看,将理解的题解写在下面

解题思路

利用两个临时的节点遍历 一个遍历A 一个遍历B 遍历完A以后指向B的头节点开始遍历 另外一个反之亦然这是因为此处的相交节点从交点后半段都是相同的设A的长度为a B的长度为b 经过互换头节点后相交节点前的节点数差异被消除 如果说相交节点的长度A为5,B为3.则消除差异后两个遍历指针所在位置到相交节点是相同的,如果没有交点说明相交的节点为null 在逻辑中已经默认存在

此处是按照本人所理解的,感觉这题有点考逻辑

public class _160_相交链表 {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
  
        if (headA == null || headB == null) {
            return null;
        }
        //进行遍历的两个节点
        ListNode a = headA;
        ListNode b = headB;
        while (a != b) {
            //如果到头就换到另外一个链表
            a = a == null ? headB : a.next;
            b = b == null ? headA : b.next;
        }
        return a;
    }
}

相交链表解法

标签:intersect   相交   遍历   code   java   list   lan   section   解题思路   

原文地址:https://www.cnblogs.com/clion/p/14071670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!