LCR 023

news/2024/9/19 0:06:00 标签: java, 开发语言, leetcode, 算法, 数据结构

题目:LCR 023


解法一:哈希表

将链表A所有元素放入Set中,遍历链表B元素,若某一元素在Set中存在,则该元素便是重复元素

java">    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        Set<Object> set = new HashSet<>();
        while (headA != null) {
            set.add(headA);
            headA = headA.next;
        }
        while (headB != null) {
            if (set.contains(headB)) {
                return headB;
            }
            headB = headB.next;
        }
        return null;
    }

解法二:双指针

指针A指向链表A头节点,指针B指向链表B头节点,二者同时遍历,若某一链表遍历结束,则转向另一链表遍历,当两指针指向相同元素时,便是两链表相交结点。

注意:指针移动指向另一个链表头部的条件应该为 nodeA == null,而非 nodeA.next == null,因为当两个链表不相同时,跳出循环的条件为二者均为null,若不让指针指向null,则会一直循环

java">    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode nodeA = headA, nodeB = headB;
        while (nodeA != nodeB) {
            nodeA = (nodeA == null) ? headB : nodeA.next;
            nodeB = (nodeB == null) ? headA : nodeB.next;
        }
        return nodeA;
    }


http://www.niftyadmin.cn/n/5664741.html

相关文章

Spring Boot-Bean注入问题

在Spring Boot开发中&#xff0c;Bean的注入是核心概念之一&#xff0c;它确保了组件之间的依赖关系得以维护并方便管理。然而&#xff0c;在实际开发过程中&#xff0c;Bean的注入有时会出现问题 1. Spring Boot中的Bean注入 首先&#xff0c;了解Spring Boot中的Bean注入机…

CentOS详细解析及其配置方法

CentOS&#xff0c;作为一款基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的开源类服务器操作系统&#xff0c;自发布以来&#xff0c;凭借其卓越的稳定性、安全性和易用性&#xff0c;在企业级Linux发行版中占据了重要地位。以下是对CentOS的详细解析及…

linux-网络管理-网络抓包

Linux 网络管理&#xff1a;网络抓包 网络抓包是网络管理和分析中非常重要的技术。在 Linux 系统中&#xff0c;网络抓包可以帮助管理员和开发人员监控、分析和排查网络问题。抓包的过程指的是通过捕获网络接口上的数据包&#xff0c;查看其内容&#xff0c;从而帮助理解网络通…

攻击者如何在日常网络资源中隐藏恶意软件

近二十年来&#xff0c;安全 Web 网关 (SWG) 一直在监控网络流量&#xff0c;以检测恶意软件、阻止恶意网站并保护企业免受基于 Web 的威胁。 然而&#xff0c;攻击者已经找到了许多绕过这些防御措施的方法&#xff0c;SquareX的安全研究人员对此进行了记录。 最危险的策略之…

鸿蒙Harmony应用开发,数据驾驶舱页面的实现

先来看看我们要实现的驾驶舱的页面是什么样的 对于这种 响应式布局的页面构建&#xff0c;我们的脑子里面要有一个概念&#xff0c;就是"分而治之"。我们把这个页面进行分割&#xff0c;分割成不同的块然后再来逐个实现. 不难发现&#xff0c;我们可以将这个看到的效…

Vue学习记录之四(computed的用法)

computed 属性用于创建计算属性。计算属性是基于现有响应式数据派生出的值&#xff0c;它会自动缓存&#xff0c;只有当依赖的响应式数据发生变化时&#xff0c;计算属性才会重新计算&#xff0c;这样可以提高性能和避免不必要的重复计算。 书写有两种方法&#xff1a; 1、选项…

文件操作

1.文件的打开和关闭 文件在读写之前应该先打开文件&#xff0c;在使用结束之后应该关闭文件。 在编写程序的时候&#xff0c;在打开文件的同时&#xff0c;都会返回一个FILE*的指针变量指向该文件&#xff0c;也相当于建立了指针和文件的关系。ANSI C规定使用fopen函数来打开文…

【python】30、矩阵加法 tensor.sum

文章目录 一、tensor.sum 一、tensor.sum 为了更好地理解 torch.sum 函数中 dim 参数的作用&#xff0c;我们可以将三维张量的求和过程分解&#xff0c;并通过具体的例子来说明不同 dim 参数的效果。### 三维张量的结构假设我们有一个 3x2x2 的张量&#xff0c;如下所示&#…