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

算法学习 25 集合

1.反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]
输出:[2,1]

示例 3:

输入:head = []
输出:[]
/*** 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 reverseList(ListNode head) {List<Integer> list = new LinkedList<Integer>();ListNode cur = head;while(cur!=null){list.add(cur.val);cur=cur.next;}ListNode ans =new ListNode(0);//创建虚拟头节点ListNode pre = ans;//指针for(int i=list.size()-1;i>=0;i--){pre.next=new ListNode(list.get(i)); // 从后往前取元素创建新节点pre=pre.next;}return ans.next; // 返回新链表的头节点}
}

2.合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例 1:

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

输入:l1 = [], l2 = []
输出:[]

示例 3:

输入:l1 = [], l2 = [0]
输出:[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 mergeTwoLists(ListNode list1, ListNode list2) {// if(list1 == null) {//     return list2;// }// if(list2 == null) {//     return list1;// }// if(list1.val < list2.val) {//     list1.next = mergeTwoLists(list1.next, list2);//     return list1;// } else {//     list2.next = mergeTwoLists(list1, list2.next);//     return list2;// }List<Integer> list = new LinkedList<Integer>();while(list1!=null&&list2!=null){if(list1.val>list2.val){list.add(list2.val);list2=list2.next;}else{list.add(list1.val);list1=list1.next;}}// 处理剩余未遍历的节点(其中一个链表已空)while (list1 != null) {list.add(list1.val);list1 = list1.next;}while (list2 != null) {list.add(list2.val);list2 = list2.next;}ListNode ans = new ListNode(0);ListNode pre = ans;for(int i=0;i<list.size();i++){pre.next=new ListNode(list.get(i));pre=pre.next;}return ans.next;}
}

http://www.dtcms.com/a/589910.html

相关文章:

  • 【西门子变频器的理解与调试】
  • 泉州企业自助建站系统网站seo优化管理系统
  • 高端网站建设 房产某企业网站的分析优化与推广
  • 10 万雷达点迹零卡顿回放:WPF + Vortice.Direct2D 多线程渲染实战
  • 09数据处理:使用ClickHouse高效处理监控数据
  • 网站cms是什么意思网上商城怎样推广
  • CPLD(复杂可编程逻辑器件,Complex Programmable Logic Device)是什么?
  • 做钓鱼网站违法吗怎样写代码
  • ChatGPT 2025版:高效AI助手使用指南
  • 行为型设计模式2
  • 深入解析Qt中的QDrag:实现灵活的拖放交互
  • 【11408学习记录】考研英语核心考点:三步拆解阅读理解长难句​
  • 上海电商网站开发花万元请人做网站
  • Vue 数据代理
  • C++常见排序算法详解
  • 中企动力的网站如何网站产品详情页怎么做
  • 前端跨页面通信
  • TypeScript 中的接口(Interface)与类型别名(Type Alias)
  • 直播视频网站如何做中企动力做网站 知乎
  • ZYZ28-NOIP模拟赛-Round4 hetao1733837的record
  • 指南:为何及如何使用Envoy作为跳板机代理Cloud SQL
  • 黑马JAVAWeb - 登录功能02-登录校验-Interceptor拦截器
  • 团购网站的发展wordpress下载视频播放器
  • Rust 练习册 :深入探索XOR加密与流密码
  • Transformer模型实现中英文翻译
  • 个人如何建网站做图书网站赚钱么
  • 跨部门沟通对齐闭环模板(需求确认+方案对齐+风险同步)
  • 网站商城支付接口网站怎么免费做推广
  • 上海做家庭影院的公司网站抖音代运营的资源
  • Ascend C Tiling 策略核心原理解析:提升算力利用率的关键