文章目录
- 剑指 Offer II 023. 两个链表的第一个重合节点
- AC代码
剑指 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; }