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

力扣面试150题--环形链表和两数相加

Day 32

题目描述

在这里插入图片描述

思路

采取快慢指针

/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public boolean hasCycle(ListNode head) {ListNode fast = head;ListNode slow = head;// 空链表、单节点链表一定不会有环while (fast != null && fast.next != null) {fast = fast.next.next; // 快指针,一次移动两步slow = slow.next;      // 慢指针,一次移动一步if (fast == slow) {   // 快慢指针相遇,表明有环return true;}}return false; // 正常走到链表末尾,表明没有环}
}

题目描述

在这里插入图片描述

思路

由于l1和l2是倒序排列的,也就是从低位到高位,那么直接按照顺序相加,记录进位,如果l1和l2其中一个加到尾部了,另外一个加0和进位即可,最后返回结果

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode res=new ListNode();ListNode head=res;int num=0;//模拟进位while(l1!=null&&l2!=null){int x=l1.val+l2.val+num;if(x>=10){num=1;res.next=new ListNode(x%10);res=res.next;}else{num=0;res.next=new ListNode(x);res=res.next;}l1=l1.next;l2=l2.next;}if(l1==null){while(l2!=null){int x=num+l2.val;if(x>=10){num=1;res.next=new ListNode(x%10);res=res.next;}else{num=0;res.next=new ListNode(x);res=res.next;}l2=l2.next;}}else{while(l1!=null){int x=num+l1.val;if(x>=10){num=1;res.next=new ListNode(x%10);res=res.next;}else{num=0;res.next=new ListNode(x);res=res.next;}l1=l1.next;}}if(num==1){res.next=new ListNode(1);res=res.next;}return head.next;}
}
http://www.xdnf.cn/news/2020.html

相关文章:

  • 攻克光纤液位传感器电磁干扰两大难题
  • 飞机会员日
  • Transformer(Trainer)和参数调优实践
  • 【Linux内核设计与实现】第三章——进程管理04
  • java网络原理4
  • 配合图解 SEG-SAM: Semantic-Guided SAM for Unified Medical Image Segmentation
  • 三格电子——如何解决工业场景中以太网设备布线不方便的问题
  • 海外红人营销+用户反馈闭环:2025跨境电商品牌持续优化策略
  • 【前缀和计算和+哈希表查找次数】Leetcode 560. 和为 K 的子数组
  • 特斯拉宣布启动自动驾驶网约车测试,无人出租车服务进入最后准备阶段
  • SIEMENS PLC程序解读 -Serialize(序列化)SCATTER_BLK(数据分散)
  • sherpa-ncnn:Linux(x86/ARM32/ARM64)构建sherpa-ncnn --语音转文本大模型
  • BIOS主板(非UEFI)安装fedora42的方法
  • ClickHouse 中`MergeTree` 和 `ReplicatedMergeTree`表引擎区别
  • 谈谈接口和抽象类有什么区别?
  • 从“干瞪眼“到精准唤醒:Java线程通信的打怪升级之路
  • Unity3D Lua集成技术指南
  • kubesphere 单节点启动 etcd 报错
  • 3、LangChain基础:LangChain Chat Model
  • 从FP32到BF16,再到混合精度的全景解析
  • 高等数学第二章---导数与微分(2.1~2.3)
  • 多模态大语言模型arxiv论文略读(四十)
  • 语音合成之五语音合成中的“一对多”问题主流模型解决方案分析
  • Synopsys 逻辑综合的整体架构概览
  • vscode 打开csv乱码
  • 4.5/Q1,GBD数据库最新文章解读
  • Dubbo负载均衡策略深度解析
  • 洛谷 B3647:【模板】Floyd 算法
  • 筑牢数字防线:商城系统安全的多维守护策略
  • 《解锁LLMs from scratch:开启大语言模型的探索之旅》