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

LeetCode 86 Partition List 分区链表 Java

题目:给定一串链表的起始节点head和一个数值x,将链表中所有比X值小的节点放在比X值大的节点的前面,除此之外,要求保持原有的节点排序不变。

例子:

举例1:

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

输出 :[1,2,2,4,3,5 ];

举例2:

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

输出:[1,2]

解题思路:

创建两个链表,分别存储比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) {
        ListNode lessListHead = new ListNode(0);
        ListNode greaterListHead = new ListNode(0);
        ListNode lessListCurrect = lessListHead;
        ListNode greaterListCurrect = greaterListHead;

        //遍历head链表,将head中值比x小的节点放入小的链表中,反之放入另一个链表中
        while (head != null) {
            if (head.val < x) {
                lessListCurrect.next = head;
                lessListCurrect = lessListCurrect.next;
            } else {
                greaterListCurrect.next = head;
                greaterListCurrect = greaterListCurrect.next;
            }
            head = head.next;
        }

        //拼接两个链表
        greaterListCurrect.next = null;
        lessListCurrect.next = greaterListHead.next;

        return lessListHead.next;
    }
}


http://www.kler.cn/a/598375.html

相关文章:

  • Canal同步延迟和数据丢失优化方案
  • 使用Python构建去中心化预测市场:从概念到实现
  • one-hot标签详解
  • 2025年渗透测试面试题总结-某深信服 -安全工程师(题目+回答)
  • 自然语言处理|Adapter:大模型微调的高效之道
  • 让 MGR 不从 Primary 的节点克隆数据?
  • 阿里云对象存储教程
  • 【深度技术揭秘】 Android SystemUI锁屏界面动态布局重构:横竖屏智能适配指南
  • 9.嗅探与Wireshark进阶分析
  • JSON数据修改的实现
  • 【AVRCP】AVRCP与BIP互操作性深度解析:封面艺术传输的技术实现
  • Unity的JSON工具类+LitJson的引入及使用
  • 基于python+django的酒店预定网站-酒店管理系统源码+运行步骤+课程学习
  • 【2025】基于node.js的中医药科普平台的设计与实现(源码、万字文档、图文修改、调试答疑)
  • Spring IOC深入解析:从原理到实践
  • 《基于深度学习的指纹识别智能门禁系统》开题报告
  • 鸿蒙常见面试题(欢迎投稿一起完善持续更新——已更新到62)
  • 如何理解G/T、EIRP
  • webstorm调试模式报错:Cannot detect a launch configuration
  • kafka的文章