leetcode hot 01

题目

解题思路:如果两个链表在某一点相交,那么那一点之后的node也都会相同,长度也相同。所以,我们先遍历获取对应每一条链表的长度,然后让长的链表先走两个链表长度之差的距离,然后再同时起步,每个节点进行对比,能不能找到相同的。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA==null || headB==null) return null;
        ListNode dummy_head1 = new ListNode();
        ListNode dummy_head2 = new ListNode();
        dummy_head1.next = headA;
        dummy_head2.next = headB;
        ListNode p = dummy_head1;
        ListNode q = dummy_head2;
        int count1 = 0;
        int count2 = 0;
        while(p.next!=null){
            count1++;
            p = p.next;
        } 
        while(q.next!=null) {
            count2++;
            q = q.next;
        }
        p = dummy_head1;
        q = dummy_head2;
        while(count1>count2) 
        {
            p = p.next;
            count1--;
        }
        while(count1<count2)
        {
            q = q.next;
            count2--;
        }
        while(p.next!=null){
            p = p.next;
            q = q.next;
            if(p == q){
                return p;
            }
        }
        return null;
    }
}
posted @   kukudev  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示