leetcode160.相交链表

leetcode160.相交链表

题目

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

用例

求解

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */

/**
 * @param {ListNode} headA
 * @param {ListNode} headB
 * @return {ListNode}
 */
var getIntersectionNode = function(headA, headB) {
    let p1 = headA
    let p2 = headB
    let flag = 2
    while(p1!=p2&&flag>=0){
        if(p1==null){
            p1=headB
            flag--
        }else{
            p1=p1.next
        }
        if(p2==null){
            p2=headA
            flag--
        }else{
            p2=p2.next
        }
    }
    if(flag==-1){
        return null
    }
    return p1

    // let p1 = headA
    // let p2 = headB
    // let differ_length = 0
    // let long_List = 0
    // while(p1!=null&&p2!=null){
    //     p1=p1.next
    //     p2=p2.next
    // }
    // if(p1!=null){
    //     long_List=1
    //     while(p1!=null){
    //         differ_length++
    //         p1=p1.next
    //     }
    // }
    // if(p2!=null){
    //     long_List=2
    //     while(p2!=null){
    //         differ_length++
    //         p2=p2.next
    //     }
    // }
    // p1 = headA
    // p2 = headB
    // if(long_List==1){
    //     while(differ_length>0){
    //         differ_length--
    //         p1=p1.next
    //     }
    // }
    // if(long_List==2){
    //     while(differ_length>0){
    //         differ_length--
    //         p2=p2.next
    //     }
    // }
    // while(p1!=p2&&p1!=null&&p2!=null){
    //     p1=p1.next
    //     p2=p2.next
    // }
    // if(p1==p2&&p1!=null&&p2!=null){
    //     return p1
    // }else{
    //     return null
    // }
};
posted @ 2021-11-29 21:48  BONiii  阅读(25)  评论(0)    收藏  举报