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

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

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

/**
 * struct ListNode {
 *  int val;
 *  struct ListNode *next;
 * };
 */

/**
 *
 * @param pHead1 ListNode类
 * @param pHead2 ListNode类
 * @return ListNode类
 */
struct ListNode* FindFirstCommonNode(struct ListNode* pHead1,
                                     struct ListNode* pHead2 ) {
    // write code here

    struct ListNode* pHead1temp = pHead1;
    struct ListNode* pHead2temp = pHead2;

    while (NULL != pHead1temp) {
        pHead2temp = pHead2;  //snowshuang :  开始这里忘记每次都要从头开始遍历忘记加了导致运行不符合预期,如果用for循环应该不会出现这个问题,因为for循环里面赋初值。
        while (NULL != pHead2temp) {
            if (pHead1temp == pHead2temp) {
                return pHead1temp;
            }
            printf("pHead2temp->val = %d, pHead1temp->val = %d\r\n", pHead2temp->val, pHead1temp->val);
            pHead2temp = pHead2temp->next;

        }
        //printf("pHead1temp->val = %d\r\n", pHead1temp->val);
        pHead1temp = pHead1temp->next;
    }

    return NULL;

}

全部评论
总之挺简单的,两次遍历寻找相同的节点即可。
点赞 回复 分享
发布于 2023-06-29 01:19 北京

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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