思路:
如果两个单向链表l1 l2有公共结点,
那么l1 l2从某一结点开始,它们next指向公共结点。
从公共结点开始后面所有结点均重合。
分别遍历l1 l2得到它们的长度n1 n2,并求出|n1-n2|。
在长链表上先遍历|n1-n2|,再同步遍历l1 l2,直到找到相同的结点。
时间复杂度为O(n1+n2)。
剑指offer 两链表的第一个公共结点
最新推荐文章于 2022-01-07 17:18:54 发布
思路:
如果两个单向链表l1 l2有公共结点,
那么l1 l2从某一结点开始,它们next指向公共结点。
从公共结点开始后面所有结点均重合。
分别遍历l1 l2得到它们的长度n1 n2,并求出|n1-n2|。
在长链表上先遍历|n1-n2|,再同步遍历l1 l2,直到找到相同的结点。
时间复杂度为O(n1+n2)。