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

SouthLeetCode-打卡24年02月第1周

SouthLeetCode-打卡24年02月第1周

// Date : 2024/02/01 ~ 2024/02/04

034.合并两个有序链表

(1) 题目描述

034#LeetCode.21.#北岸计划2024/02/01

将两个升序链表合并为一个新的 升序 链表并返回。

新链表是通过拼接给定的两个链表的所有节点组成的。

(2) 题解代码

class Solution {private ListNode mergeLists(ListNode curr, ListNode list) {while (list != null) {int curVal = list.val;curr.next = new ListNode(curVal);curr = curr.next;list = list.next;}return curr;}public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode dummy = new ListNode();ListNode curr = dummy;while (list1 != null && list2 != null) {boolean condition = list1.val < list2.val;int curVal = condition ? list1.val : list2.val;curr.next = new ListNode(curVal);curr = curr.next;if (condition) {list1 = list1.next;} else {list2 = list2.next;}}curr = mergeLists(curr, list1);curr = mergeLists(curr, list2);return dummy.next;}
}

035.合并K个升序链表

(1) 题目描述

035#LeetCode.23.#北岸计划2024/02/01

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

(2) 题解代码

class Solution {public ListNode mergeKLists(ListNode[] lists) {int size = lists.length;ListNode curr;int curVal;ListNode dummy = new ListNode();List<Integer> result = new ArrayList<>();for(int i=0 ; i<size ; i++){curr = lists[i];while(curr != null){curVal = curr.val;result.add(curVal);curr = curr.next;}}Collections.sort(result);int length = result.size();ListNode resDummy = new ListNode();curr = resDummy;for(int k=0 ; k<length ; k++){curr.next = new ListNode(result.get(k));curr = curr.next;}return resDummy.next;}
}

036.链表的中间结点Ⅰ

(1) 题目描述

036#LeetCode.NULL.#北岸计划2024/02/03

给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第个中间结点。

(2) 题解代码

public class MiddleNodeFor1 implements MiddleNode {@Overridepublic ListNode middleNode(ListNode head){ListNode dummy = new ListNode();dummy.next = head;ListNode slow = dummy;ListNode fast = head;while(fast != null){slow = slow.next;fast = fast.next;fast = fast != null ? fast.next : fast;}return slow;}
}

037.链表的中间结点Ⅱ

(1) 题目描述

037#LeetCode.876.#北岸计划2024/02/03

给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第个中间结点。

(2) 题解代码

class Solution {public ListNode middleNode(ListNode head) {ListNode dummy = new ListNode();dummy.next = head;ListNode slow = dummy;ListNode fast = dummy;while(fast != null){slow = slow.next;fast = fast.next;fast = fast != null ? fast.next : fast;}return slow;}
}

038.分隔链表

(1) 题目描述

038#LeetCode.86.#北岸计划2024/02/04

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,

使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。

你应当 保留 两个分区中每个节点的初始相对位置。

(2) 题解代码

class Solution {public ListNode partition(ListNode head, int x) {if(head == null) return null;ListNode curr = head;List<Integer> list = new ArrayList();int curVal;while(curr != null){list.add(curr.val);curr = curr.next;}List<Integer> sList = new ArrayList();for(int i=0 ; i<list.size() ; i++){curVal = list.get(i);if(curVal < x){sList.add(curVal);list.remove(i);i--;}}for(int j=0 ; j<list.size() ; j++){curVal = list.get(j);sList.add(curVal);}ListNode newHead = new ListNode(sList.get(0));curr = newHead;for(int k=1 ; k<sList.size() ; k++){curVal = sList.get(k);curr.next = new ListNode(curVal);curr = curr.next;}return newHead;}
}
http://www.lryc.cn/news/299201.html

相关文章:

  • vscode的cmake工具小三角符号旁边没有目标的解决方法
  • Servlet JSP-Eclipse安装配置Maven插件
  • os模块
  • 【C语言进阶】深度剖析数据在内存中的存储--上
  • 【doghead】VS2022 win11 安装配置WSL2 以编译linux端的cmake项目并运行2
  • 【教程】C++语言基础学习笔记(七)——Array数组
  • BUGKU-WEB GET
  • 蓝桥杯每日一题----唯一分解定理
  • openssl3.2 - osslsigncode工程的学习
  • HTML 超文本标记语言
  • sklearn:机器学习 分类特征编码category_encoders
  • C++错误[错误] call of overloaded ‘min(int, int)‘ is ambiguous
  • 2024全栈元年-thinkphp-数据操作
  • HTML世界之第二重天
  • 社区经营的好处与优势:为何越来越多的人选择社区店?
  • C语言系列1——详解C语言:变量、常量与数据类型
  • WordPress修改所有用户名并发送邮件通知的插件Easy Username Updater
  • C语言中的数据类型-强转
  • 大数据可视化BI分析工具Apache Superset结合内网穿透实现远程访问
  • C# 线程与线程池的使用方法、注意事项
  • 2024年华为OD机试真题-按身高和体重排队-Python-OD统一考试(C卷)
  • openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O
  • 去除vue自带的边距
  • ElasticSearch级查询Query DSL上
  • 120.乐理基础-五线谱-五线谱的多声部与指法问题
  • YOLOv5独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测
  • 洛谷 P1102 A-B 数对 (Java)
  • 情人节到了,写一份爱心程序(python)
  • Java图形化界面编程—— 基本组件和对话框 笔记
  • 使用Docker,拉取Nginx镜像,创建并运行Nginx容器