LeetCode题解-相交链表-Java

简介: 相交链表-Java

不多说,上代码,一看就懂。主要思路就是 从链表尾往链表头看

public class Solution {
   
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
   
        int countA=getCount(headA);
        int countB=getCount(headB);
        int gap=Math.abs(countA-countB);
        if (countA>countB){
   
            while (gap>0){
   
                headA=headA.next;
                gap--;
            }
        }else{
   
            while (gap>0){
   
                headB=headB.next;
                gap--;
            }
        }
        return getResult(headA,headB);
    }
    public int getCount(ListNode node){
   
        int count=0;
        while (node!=null){
   
            count++;
            node=node.next;
        }
        return count;
    }
    public ListNode getResult(ListNode nodeA,ListNode nodeB){
   
        while (nodeA!=null){
   
            if (nodeA==nodeB){
   
                return nodeA;
            }
            nodeA=nodeA.next;
            nodeB=nodeB.next;
        }
        return null;
    }
}
目录
相关文章
|
9天前
|
算法 Java C语言
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
5天前
【力扣】21. 合并两个有序链表
【力扣】21. 合并两个有序链表
|
1月前
|
存储 Java
Java链表
Java链表
11 0
|
1月前
|
存储 JavaScript
leetcode82. 删除排序链表中的重复元素 II
leetcode82. 删除排序链表中的重复元素 II
22 0
|
1月前
leetcode83. 删除排序链表中的重复元素
leetcode83. 删除排序链表中的重复元素
10 0
|
1月前
leetcode2807.在链表中插入最大公约数
leetcode2807.在链表中插入最大公约数
16 0
|
1月前
leetcode2487.从链表中移除节点
leetcode2487.从链表中移除节点
20 1
|
1月前
|
存储 算法
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
|
1月前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)