160. 相交链表 golang

試著忘記壹切 提交于 2020-01-30 13:45:06

求两个链表相交

Me


func getIntersectionNode(headA, headB *ListNode) *ListNode{
    if headA == nil {
        return headA
    }
    if headB == nil {
        return headB
    }

    l1 := headA
    l2 := headB

    var a int = 0
    node := l1
    for node != nil {
        a += 1
        node = node.Next
    }

    var b int = 0
    node = l2
    for node != nil {
        b += 1
        node = node.Next
    }

    if a > b {
        num := a-b
        for i:=0; i < num; i ++ {
            l1 = l1.Next
        }
    } else if a < b {
        num := b - a
        for i := 0; i < num; i++ {
            l2 = l2.Next
        }
    }
    for l1 != l2 {
        if l1 == nil {
            return headB
        } else {
            l1 = l1.Next
        }

        if l2 == nil {
            return headA
        } else {
            l2 = l2.Next
        }
    }
    return l1;
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!