剑指 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

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐