LeetCode链表问题——面试题02

蜂信物联FastBee平台https://gitee.com/beecue/fastbee

阿里资料开源项目https://gitee.com/vip204888

百度低代码前端框架https://gitee.com/baidu/amis

OpenHarmony开源项目https://gitcode.com/openharmony

仓颉编程语言开放项目https://gitcode.com/Cangjie

二、代码

=========


public class Solution {

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {

        ListNode curA = headA;

        ListNode curB = headB;

        int lenA = 0, lenB = 0;

        while (curA != null) { // 求链表A的长度

            lenA++;

            curA = curA.next;

        }

        while (curB != null) { // 求链表B的长度

            lenB++;

            curB = curB.next;

        }

        curA = headA;

        curB = headB;

        // 让curA为最长链表的头,lenA为其长度

        if (lenB > lenA) {

            //1. swap (lenA, lenB);

            int tmpLen = lenA;

            lenA = lenB;

            lenB = tmpLen;

            //2. swap (curA, curB);

            ListNode tmpNode = curA;

            curA = curB;

            curB = tmpNode;

        }

        // 求长度差

        int gap = lenA - lenB;

        // 让curA和curB在同一起点上(末尾位置对齐)

        while (gap-- > 0) {

            curA = curA.next;

        }

        // 遍历curA 和 curB,遇到相同则直接返回

        while (curA != null) {

            if (curA == curB) {

                return curA;

            }

            curA = curA.next;

            curB = curB.next;

        }

        return null;

    }



}

三、了解链表

======

什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链接的入口节点称为链表的头结点也就是head。

单链表:链表1

双链表:

每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。

双链表 既可以向前查询也可以向后查询。

最后

俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!

另外,给大家安排了一波学习面试资料:

image

image

以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!
排了一波学习面试资料:

[外链图片转存中…(img-KaWyovdJ-1725194145295)]

[外链图片转存中…(img-b0F0PCH6-1725194145295)]

以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值