当前位置: 首页 > 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.dtcms.com/a/270312.html

相关文章:

  • main(int argc,char **agrv)的含义
  • Kubernetes配置管理
  • Vue3组合式API应用:状态共享与逻辑复用最佳实践
  • 说说SpringBoot常用的注解?
  • [Datawhale AI夏令营]大模型技术-基于带货视频评论的用户洞察挑战赛上分分享
  • React Native 一些API详解
  • 【ElasticSearch实用篇-02】基本增删改查
  • LoRaWAN 有几种入网方式?
  • 4. 那在详细说一下 http 2.0 的特点
  • WinUI3入门16:Order自定义排序
  • ACE-Step:AI音乐生成基础模型
  • 代码详细注释:基于log.h的自定义日志库实现
  • 探索下一代云存储技术:对象存储、文件存储与块存储的区别与选择
  • Splunk练习 Boss of the SOC V1
  • 短视频矩阵系统的崛起:批量发布功能与多平台矩阵的未来
  • LeetCode 21. 合并两个有序链表
  • C#Halcon从零开发_Day18_OCR识别
  • 4. isaac sim4.2 教程-Core API-Hello robot
  • 【计算机组成原理】-CPU章节学习篇—笔记随笔
  • Linux 第一个系统程序 - 进度条
  • (C++)list列表相关基础用法(C++教程)(STL库基础教程)
  • 跨越NLP的三重曲线:从词法到叙事的进化之路
  • 使用python的 FastApi框架开发图书管理系统-前后端分离项目分享
  • huggingface笔记:文本生成Text generation
  • EXCEL(带图)转html
  • 基于LiteOS与SLE的多任务无线控制器项目实战
  • 深圳凭物联网软件开发构建智慧‘城市大脑‘
  • 什么是 3D 文件?
  • UE material advance 学习笔记
  • 【时时三省】(C语言基础)怎样引用指针变量