题目:
编写一个程序,找到两个单链表相交的起始节点。
思路:
首先需要画出示例图,方便找思路。链表问题一般需要操作很多指针,该题可以使用双指针,
但需要保持两个链表上的指针距离尾指针的距离相同。因此想到需要首先统计出两链表的长度,然后
让长链表的指针先走到和短链表的指针相同的位置。
代码:
1 | public ListNode getIntersectionNode(ListNode headA, ListNode headB) { |
复杂度分析及总结:
时间复杂度:
O(n)。
空间复杂度:
O(1)。