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

leetcode86.分隔链表

大体的思路是不断向后遍历找到节点值小于x的,然后把他置换到整个链表的前方

具体实现是先利用左指针找到原链表第一个不小于x的节点的前一个节点;然后右指针以此为起点,找到下一个节点值小于x的,然后把下一个节点抽到左值针的下一个节点;直到遍历完整个链表

 

/*** 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 partition(ListNode head, int x) {//1.添加虚拟头节点然后找到第一个不小于x节点的前一个节点ListNode dummyHead = new ListNode(Integer.MIN_VALUE, head);ListNode left = dummyHead, right = dummyHead;while (left.next != null && left.next.val < x) {left = left.next;}right = left;//2.利用右指针找到小于x的节点然后放置到整个链表的左边while (right.next != null) {if (right.next.val < x) {ListNode temp = right.next;right.next = temp.next;temp.next = left.next;left.next = temp;left = left.next;} else {right = right.next;}}return dummyHead.next;}
}

 

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

相关文章:

  • 1. 两数之和 (leetcode)
  • 【网络】Linux 内核优化实战 - net.ipv4.tcp_timestamps
  • 【Docker基础】Docker数据卷管理:docker volume prune及其参数详解
  • CSS 文字浮雕效果:巧用 text-shadow 实现 3D 立体文字
  • 一体化步进伺服电机在无人机扫地机器人中的应用案例
  • 隐马尔可夫模型:语音识别系统的时序解码引擎
  • 写传播和写策略
  • 【Linux】常用基本指令
  • 量化交易中的隐藏模式识别:基于潜在高斯混合模型的机会挖掘
  • 130.【C语言】数据结构之基数排序
  • Typora + PicGo + Gitee图床——图片自动上传详细教程
  • 手机无网离线使用FunASR识别SIM卡语音通话内容
  • Integer缓冲区
  • 大模型算法面试笔记——Bert
  • 【QT】事件(鼠标、按键、定时器、窗口)
  • Visual Studio 2022 MFC Dialog 添加Toolbar及Tips提示
  • Linux命令大全:按功能分类详解(附表格速查)
  • 故障诊断 | CNN-GRU-Attention故障诊断
  • 模块二:C++核心能力进阶(5篇)第四篇《C++对象模型:虚函数表与继承体系内存布局》
  • PJSIP 中的 TCP 传输配置指南
  • Linux内核深度解析:IPv4策略路由的核心实现与fib_rules.c源码剖析
  • 介绍Flutter
  • 06.自动化测试概念
  • 极简 Docker Compose + Nginx + Certbot 自动化 HTTPS 部署指南
  • 深度学习4(浅层神经网络)
  • Python之--基本知识
  • 马来西亚华韵海外华侨联合会宣布李子昂先生荣升名誉理事
  • HarmonyOS学习2---工程目录UIAbility
  • mysql 图形化界面工具 DataGrip 安装与配置
  • 基于人体骨架动作识别的神经信息处理技术(8 ANUBIS数据集)