ઇଓ 欢迎来阅读子豪的博客(LeetCode刷题篇)
☾ ⋆有什么宝贵的意见或建议可以在留言区留言
ღღ欢迎 素质三连 点赞 关注 收藏
❣ฅ码云仓库:补集王子 (YZH_skr) - Gitee.com
160. 相交链表 - 力扣(LeetCode)
https://leetcode.cn/problems/intersection-of-two-linked-lists/submissions/
思路
O(N^2),先计算两个链表的长度,然后计算长度差,让长的先走差值步
比较长度
长的先走
比较结点
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) { int lenA = 1, lenB = 1, X = 1, Max = 1; struct ListNode* longList; struct ListNode* cura = headA,* curb = headB; while(cura->next) { ++lenA; cura = cura->next; } while(curb->next) { ++lenB; curb = curb->next; } // X表示长度差值 // Max表示长的那个链表的长度 if(lenA>lenB) { X=lenA-lenB; while(X--) { headA = headA->next; } Max = lenA; } else { X=lenB-lenA; while(X--) { headB = headB->next; } Max = lenB; } while(Max--) { if(headA == headB) return headA; headB = headB->next; headA = headA->next; } return NULL; }
总结
链表的题,结点题不要空想,要用手画图,然后对着实物图来写代码,思路才清晰