题解 | #两个链表的第一个公共结点#

两个链表的第一个公共结点

https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46

package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 
 * @param pHead1 ListNode类 
 * @param pHead2 ListNode类 
 * @return ListNode类
*/
func FindFirstCommonNode( pHead1 *ListNode ,  pHead2 *ListNode ) *ListNode {
    // 1, 2, 3, 6, 7, 4, 5, 6, 7 
    // 4, 5, 6, 7, 1, 2, 3, 6, 7
    // a + b = b + a 有公共点必相遇

    p1, p2 := pHead1, pHead2
    for p1 != p2 {
        if p1 == nil {
            p1 = pHead2
        }else{
            p1 = p1.Next
        }
        if p2 == nil {
            p2 = pHead1
        }else{
            p2 = p2.Next
        }
    }
    return p1
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务