广州好蜘蛛网站建设公司,房产官网查询系统,淘宝官方网站主页,关键词优化排名查询给你两个单链表的头节点 headA 和 headB #xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点#xff0c;返回 null 。
图示两个链表在节点 c1 开始相交#xff1a; 题目数据 保证 整个链式结构中不存在环。
注意#xff0c;函数返回结果后请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点返回 null 。
图示两个链表在节点 c1 开始相交 题目数据 保证 整个链式结构中不存在环。
注意函数返回结果后链表必须 保持其原始结构 。
思路一模拟题意
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {if(!headA||!headB)return NULL;struct ListNode *p headA,*q headB;while(q!p){q q ? q-next:headA;p p ? p-next:headB;}return p;}
分析
本题返回相交链表的相交节点可以利用pq两个指针记录遍历位置当qp时即遍历到相交节点返回即可
总结
本题考察对链表的利用利用指针记录位置当两个指针到相交节点返回即可解决