leetcode-两个链表的第一个公共节点-47

Posted 天津 唐秙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-两个链表的第一个公共节点-47相关的知识,希望对你有一定的参考价值。

题目要求
  输入两个链表,找出它们的第一个公共节点。
思路
  先将两个链表进行遍历,如果有节点相交,直接返回,没有节点相交,将先结束的那个链表的指针指向另一个链表的头结点,从新判断,这样两个链表最多一共循环链表1的长度加上链表2的长度,如果有相同节点也一定会找到。

代码实现

class Solution {
public:
	ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
		ListNode* cur1 = headA;
		ListNode* cur2 = headB;

		while (cur1 != cur2)
		{
			cur1 = cur1 != NULL ? cur1->next : headB;
			cur2 = cur2 != NULL ? cur2->next : headA;
		}
		return cur1;
	}
};

以上是关于leetcode-两个链表的第一个公共节点-47的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode]剑指 Offer 52. 两个链表的第一个公共节点

Leetcode—— 两个链表的第一个公共节点

(LeetCode)两个链表的第一个公共节点

LeetCode Algorithm 剑指 Offer 52. 两个链表的第一个公共节点

LeetCode Algorithm 剑指 Offer 52. 两个链表的第一个公共节点

LeetCode 剑指Offer 52 两个链表的第一个公共节点[链表] HERODING的LeetCode之路