美文网首页
LeetCode 第160题:相交链表

LeetCode 第160题:相交链表

作者: 放开那个BUG | 来源:发表于2020-08-03 19:54 被阅读0次

    1、前言

    题目描述

    2、思路

    若相交,链表A: a+c, 链表B : b+c. a+c+b+c = b+c+a+c 。则会在公共处c起点相遇。若不相交,a +b = b+a 。因此相遇处是NULL。

    3、代码

    public class Q160_GetIntersectionNode {
    
         public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
            if(headA == null || headB == null){
                return null;
            }
    
            ListNode p = headA, q = headB;
            while(p != q){
                p = p == null ? headB : p.next;
                q = q == null ? headA : q.next;
            }
    
            return p;
        }
    
        public static void main(String[] args) {
            ListNode l1 = new ListNode(4);
            ListNode l2 = new ListNode(1);
            ListNode l3 = new ListNode(8);
            ListNode l4 = new ListNode(4);
            ListNode l5 = new ListNode(5);
            l1.next = l2;
            l2.next = l3;
            l3.next = l4;
            l4.next = l5;
    
    
            ListNode l6 = new ListNode(7);
            l6.next = l3;
    
            ListNode listNode = new Q160_GetIntersectionNode().getIntersectionNode(l1, l6);
            System.out.println(listNode.val);
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode 第160题:相交链表

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