做网站图片要求高吗,文档里网站超链接怎么做,怎么给公司做网站,网站 租用服务器价格给你两个单链表的头节点 headA 和 headB #xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点#xff0c;返回 null 。
题目数据 保证 整个链式结构中不存在环。
注意#xff0c;函数返回结果后#xff0c;链表必须 保持其原始结构 。
160.…给你两个单链表的头节点 headA 和 headB 请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点返回 null 。
题目数据 保证 整个链式结构中不存在环。
注意函数返回结果后链表必须 保持其原始结构 。
160. 相交链表 - 力扣LeetCode
思路
创建两个指针 pointer1 和 pointer2两个指针分别依次遍历headA、headB区别在于pointer1从 headA 开始遍历而 pointer2 从 headB 开始遍历。都会遍历 m n 次
在此过程中如果有相同的结构必定会同时遍历到。
public class Solution {public ListNode GetIntersectionNode(ListNode headA, ListNode headB) {ListNode pointer1 headA;ListNode pointer2 headB;while(pointer1 ! pointer2){pointer1 pointer1 null ? headB : pointer1.next;pointer2 pointer2 null ? headA : pointer2.next;}return pointer1;}
}
时间复杂度O(mn)其中 m 和 n 分别是链表 headA 和 headB 的结点数。最坏情况下每个指针遍历两个链表各一次。
空间复杂度O(1)O。