当前位置: 首页 > news >正文

BM10 两个链表的第一个公共结点

目录

题目链接

题目

解题思路

代码


题目链接

两个链表的第一个公共结点_牛客题霸_牛客网

题目

解题思路

法一:(哈希表法)首先想到的是使用HashSet记录一个链表的指针,遍历另一个指针的时候第一次遇见的就是共同节点的第一个

法二:(双指针法)就是h1指针遍历一遍a后,再去遍历b;指针h2先遍历b,再去遍历a,因为两个指针同时开始,所以必能同时到达共同节点的起始位置处

代码
import java.util.*;
/*
public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}*/
public class Solution {public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {ListNode dummyNode=new ListNode(-1);dummyNode.next=pHead1;HashSet<ListNode> st=new HashSet<>();ListNode cur=pHead1;while(cur!=null){st.add(cur);cur=cur.next;}cur=pHead2;while(cur!=null){if(st.contains(cur)){return cur;}cur=cur.next;}return null;}
}

法二:

import java.util.*;
/*
public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}*/
public class Solution {public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {ListNode h1=pHead1,h2=pHead2;while(h1!=h2){h1=(h1==null)?pHead2:h1.next;h2=(h2==null)?pHead1:h2.next;}return h1;}
}

http://www.lryc.cn/news/582638.html

相关文章:

  • Linux_常见指令和权限理解
  • OSPFv3与OSPFv2不同点
  • 【Spring WebSocket详解】Spring WebSocket从入门到实战
  • springboot单体项目的发布生产优化
  • 【保姆级目标检测教程】Ubuntu 20.04 部署 YOLOv13 全流程(附训练/推理代码)
  • 基于SpringBoot+Vue的非遗文化传承管理系统(websocket即时通讯、协同过滤算法、支付宝沙盒支付、可分享链接、功能量非常大)
  • 【WEB】Polar靶场 16-20题 详细笔记
  • 从0到1搭建ELK日志收集平台
  • OpenCV探索之旅:形态学魔法
  • mit6.5840-lab3-3D-SnapShot-25Summer
  • nmon使用方法
  • 人工智能大模型(LLM)论文17道菜
  • Python3完全新手小白的学习手册 12代码测试
  • 7 种简单方法将三星文件传输到电脑
  • go入门 - day1 - 环境搭建
  • MATLAB 实现 SRCNN 图像超分辨率重建
  • Go与JS无缝协作:Goja引擎实战之错误处理最佳实践
  • 深度学习-多分类
  • 二分查找篇——搜索二维矩阵【LeetCode】遍历法
  • Mysql常用内置函数,复合查询及内外连接
  • 嘉立创黄山派下载watch ui demo 教程(sf32)
  • (电机03)分享FOC控制中SVPWM的输出关联硬件
  • [ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
  • Sa-Token完全学习指南
  • npm 包 scheduler 介绍
  • C++STL-vector
  • 股票数据源对接技术指南:印度尼西亚、印度、韩国
  • 静态路由实验以及核心原理
  • ubuntu24.04安装NFS网络文件系统/ARM开发板NFS挂载
  • 香港风水(原生)林地的逻辑分类器