剑指 Offer II 023. 两个链表的第一个重合节点

本题链接:剑指 Offer II 023. 两个链表的第一个重合节点
在这里插入图片描述
注:链接题目仅代表和本题大体相似
因为是考研笔试,本题代码以C语言去写

AC代码

代码解释:用两个指针去扫描两个链表,p指针扫描str1,q指针扫描str2,如果p扫描到链表结尾,那么下一个扫描从str2开始,q如果扫描到链表结尾,那么下一个扫描从str1开始,最终两个指针会在共同后缀的起始位置相遇

代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
    struct ListNode *p, *q;
    p = headA;
    q = headB;
    while (p != q){
        p = p ? p -> next : headB;
        q = q ? q -> next : headA;
    }
    return p;
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐