题目描述输入两个链表,找出它们的第一个公共结点. 我的思路:因为是链表,长度都是未知的,不能盲目的两个一起开始自增判断. 首先需要得到 L1的长度 和 L2的长度,让较长的那个先走 (length1-length2)步.然后再一直next去判断. AC代码, 34ms,503K /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public cla…
输入两个链表,找出它们的第一个公共结点 1.两个单链表,有公共结点,那么必然,尾部公用 2.找出链表1的长度,找出链表2的长度,长的链表减去短的链表得出一个n值 3.长的链表先走n步,两个链表再同时移动 4.两个链表相交点就是第一个公共结点 list1 list2 len1 len2 if len1 > len2 n=len1-len2 for i=0;i<n;i++ list1=list1->next else n=len2-len1 for i=0;i<n;i++ list2=…
一.题目:两个链表的第一个公共节点 题目:输入两个链表,找出它们的第一个公共结点. 链表结点定义如下,这里使用C#语言描述: public class Node { public int key; public Node nextNode; public Node(int key) { this.key = key; } } 二.解题思路 2.1 蛮力法 碰到这道题,很多人的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,每遍历到一个结点的时候,在第二个链表上顺序遍历每个结点.如果在第二个链表…
剑指 Offer 52. 两个链表的第一个公共节点 知识点:链表: 题目描述 输入两个链表,找出它们的第一个公共节点. 如下面的两个链表: 示例 示例1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Reference of the node with value = 8 输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0).从各自的表头开始算起,…
思路1:要求的是两个链表的第一个公共节点,首先想到的是用栈来存放两个链表,然后依次从栈中抛出,直到最后一个相同的节点为止.但是要用到两个栈,空间复杂度为O(n): 思路2:从头到尾分别遍历两个链表得到链表的长度风别为,len1和len2,求出两者的差值dif,然后现在长的链表上面走dif步,然后同步走剩下的节点,当就可以找到第一个公共节点了. public ListNode findFirstCommonNode(ListNode pHead1,ListNode pHead2){ if(pHea…
剑指 Offer 52. 两个链表的第一个公共节点 Offer_52 题目详情 题解分析 可以使用两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结点遍历. 当 node1 到达链表 headA 的末尾时,重新定位到链表 headB 的头结点:当 node2 到达链表 headB 的末尾时,重新定位到链表 headA 的头结点. 这样,当它们相遇时,所指向的结点就是第一个公共结点. java代码 package com.walegarrett.…
题目 剑指 Offer 52. 两个链表的第一个公共节点 思路1(栈) 若两个链表相遇,则从它开始相遇的地方到链表末尾应该都是相同的,那么我们可以将两个链表分别放入两个栈中,然后依次循环比较两个栈顶的节点,同时用pre记录上一个节点,直到当前两个栈顶节点不相等,那么pre节点就是他们开始相遇的地方 代码 public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { Lin…
题目链接:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/ 输入两个链表,找出它们的第一个公共节点. 如下面的两个链表: 在节点 c1 开始相交. 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node wi…
题目 输入两个链表,找出它们的第一个公共节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Reference of the node with value = 8 输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0).从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为…
题目信息 时间: 2019-07-03 题目链接:Leetcode tag: 单链表 难易程度:简单 题目描述: 输入两个链表,找出它们的第一个公共节点. 示例: A: a1 -> a2 \ -> c1 -> c2 -> c3 / B:b1 -> b2 -> b3 注意 1. 如果两个链表没有交点,返回 null. 2. 在返回结果后,两个链表仍须保持原有的结构. 3. 可假定整个链表结构中没有循环. 4. 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存.…