已解决
力扣面试题02.07.链表相交
来自网友在路上 169869提问 提问时间:2023-11-01 18:44:06阅读次数: 69
最佳答案 问答题库698位专家为你答疑解惑
原题链接:力扣面试题02.07.链表相交
思路
两个长度不确定是否一致的链表,如果相交,那么一定是有一个链表结点相同,注意不是值相同而是结点相同,也就代表了是需要指针是相同的才行
根据图可以得出,相交后的结点都是一致的,那么需要做的就是把两个链表长度统一,再从头结点逐步遍历,直至指针结点相同,返回相同的指针结点即可
如果没有相同的指针结点 则代表没有相交 返回NULL
全代码:
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {//遍历headA链表和headB链表的长度ListNode* curA = headA;ListNode* curB = headB;int lenA = 0,lenB = 0;while(curA != NULL){curA = curA ->next;lenA++;}while(curB != NULL){curB = curB ->next;lenB++;}if(lenB > lenA){//需要让lenA成为长度最长的链表swap(lenA,lenB);swap(headA,headB);}int len = lenA - lenB;while(len--){headA = headA ->next;}curA = headA;curB = headB;while(curA != NULL){if(curA == curB){return curA;}curA = curA ->next;curB = curB ->next;}return NULL;}
};
查看全文
99%的人还看了
相似问题
- 【剑指offer|图解|链表】链表的中间结点 + 链表中倒数第k个结点
- 【数据结构初阶(3)】双向带头结点循环链表
- 单链表相关面试题--4.输入一个链表,输出该链表中倒数第k个结点
- 王道数据结构课后代码题p150 15.设有一棵满二叉树(所有结点值均不同),已知其先序序列为 pre,设计一个算法求其后序序列post。(c语言代码实现)
- 【数据结构】树的基本性质(计算树的总结点数与叶结点数)
- 【数据结构】树与二叉树(五):二叉树的顺序存储(初始化,插入结点,获取父节点、左右子节点等)
- NowCoder | 链表中倒数第k个结点
- 设一棵完全二叉树具有1000个结点,则此完全二叉树有()叶子结点,有()个度为2的结点。
- 11.3递归建二叉树,二叉树函数规范化输入输出,一些二叉树性质,求叶子结点与树的高度
- 二叉树第i层结点个数
猜你感兴趣
版权申明
本文"力扣面试题02.07.链表相交":http://eshow365.cn/6-29531-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!