代码编织梦想

给你一个链表的头节点 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的节点分别连接在两个节点上,最后将傀儡节点连接

class Solution {
    public ListNode partition(ListNode head, int x) {
        ListNode leftHead = new ListNode(-1);
        ListNode left = leftHead;
        ListNode rightHead = new ListNode(-1);
        ListNode right = rightHead;
        while(head != null) {
            ListNode next = head.next;
            if(head.val < x) {
                left.next = head;
                left = left.next;
            } else {
                right.next = head;
                right = right.next;
            }
            head.next = null;
            head = next;
        }
        left.next = rightHead.next;
        return leftHead.next;
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44346427/article/details/127152956

leetcode86 分割链表 2018.11.8_瓜不田的博客-爱代码爱编程_分割链表leetcode

题干: 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2->4->3->5 算法思想:

leetcode 86.分割链表-爱代码爱编程

leetcode 86.分割链表 题目描述 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。示例: 输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2->4-&g

分割链表-爱代码爱编程

分割链表 /* 面试题 02.04 :分割链表 * 题目描述:编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。 * 如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示)。 * 分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。 * 解题思路:本题要求

Java.分割链表-爱代码爱编程

链接:https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70?tpId=8&tqId=11004&rp=2&ru=%2Factivity%2Foj&qru=%2Fta%2Fcracking-the-coding-interview%2Fquesti

【NowCoder.链表.CM11】链表分割,思路分析+图解-爱代码爱编程

链表分割 文章目录 链表分割一、题目二、思路分析 一、题目 📝题目指路:CM11 链表分割_牛客题霸_牛客网 (nowcoder.com) 📖📖现有一链表的头指针ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针 二、思路分析 🎯

Leetcode第二期Task01 链表 707. 设计链表 206.反转链表 203.移除链表 328.奇偶链表 234.回文链表 21.合并两个有序链表 019.删除链表的倒数第 N 个结点-爱代码爱编程

文章目录 一、链表基础知识1.1链表定义1.2链表的基本结构和操作1.2.1 建立一个线性链表1.2.2 求线性链表的长度1.2.3 查找元素1.2.4 插入元素1.2.5 链表中间修改、删除元素二、707. 设计链表2.1 题解三、206.反转链表3.1题解3.2 使用递归的解法四、203.移除链表4.1题解五、328.奇偶链表5.1题解六、23

【Leetcode刷题笔记之链表篇】面试题 02.04. 分割链表-爱代码爱编程

😈博客主页:🐼大家好我叫张同学🐼 💖 欢迎点赞 👍 收藏 💗留言 📝 欢迎讨论! 👀 🎵本文由 【大家好我叫张同学】 原创,首发于 CSDN 🌟🌟🌟 ✨精品专栏(不定时更新) 【数据结构+算法】 【做题笔记】【C语言编程学习】 ☀️ 精品文章推荐【C语言进阶学习笔记】三、字符串函数详解(1)(爆肝吐血整理,建议收藏!!!)【C语言基础学习笔记】+【C语言进

【面试题 02.04. 分割链表】-爱代码爱编程

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1: 输入:head = [1,4,3,2,5,2], x = 3 输出:[1,2,2,4,3,5] 示例 2: 输入:head = [2,1],

leetcode:分割链表-爱代码爱编程

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 思路:遍历链表,用两个栈分别存入大于等于x和小于x的值(比较粗糙的方法 class Solution { public ListNode partition(

面试题02.04分割链表-爱代码爱编程

题目描述: 思路: 需要将一个链表分为两部分,前部分小于x,后部分大于x。并且节点之前的顺序不能变。所以每次向新链表添加时需要进行尾插法。分为两部分,值大于x的分为一部分,小于x的分为一部分。使用as,ae来表示大的那一部分的头和尾节点。使用bs,be来表示小的那一部分。使用中间变量cur来代替head遍历链表。当第一次插入节点时,使得bs/as=

02.04. 分割链表-爱代码爱编程

题目: 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1: 输入:head = [1,4,3,2,5,2], x = 3 输出:[1,2,2,4,3,5] 示例 2: 输入:head = [2,

力扣86.分割链表-爱代码爱编程

问题描述: 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head = [1,4,3,2,5,2], x = 3 输出:[1,2,2,4,3,5] 示例 2: 输入:head = [

LeetCode刷题 面试题 02.04. 分割链表-爱代码爱编程

面试题 02.04. 分割链表 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1: 输入:head = [1,4,3,2,5,2], x = 3 输出:[1,2,2,4,3,5] 示例

java刷题之路——分割链表_小元进大厂的博客-爱代码爱编程

目录 1.题目 2.思路 3.代码实现 1.题目 2.思路   分割成两部分 左半部分是小于x的节点,右半部分是大于等于x的节点 然后我们再将这两个链表链接起来    我们来正式实现 1.创建左边链表的头(用来保存最后返回的值)和尾巴(用来连接和尾插) 创建右边的头(用来链接)尾巴(用来尾插

数据结构之堆_亦是远方的博客-爱代码爱编程

文章目录 一、什么是堆(一)堆的定义(二)堆的存储结构 二、怎么建立一个堆(一)AdjustDown算法(二)AdjustDown算法详解(三)算法代码(四)算法代码实例(五)AdjustDown算法复杂度分析

leetcode50天刷题计划第二季(day 8 —恢复二叉搜索树(17.30-18.40_国际知名观众的博客-爱代码爱编程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、题目恢复二叉搜索树示例提示进阶 二、思路三、代码 前言 最近跟二叉搜索树杠上了、、 一、题目 恢复二

链表题(三) 面试题02.04. 分割链表290. 单词规律20. 有效的括号_用这个小字符串把大字符串分割,然后组成链表-爱代码爱编程

目录 面试题02.04. 分割链表 290. 单词规律 20. 有效的括号 面试题02.04. 分割链表 package leetcode; //分割链表给你一个链表的头节点 head 和一个特定值 x , // 请你对链表进行分隔,使得所有 小于 x 的节点都出现在 // 大于或等于 x 的节点之前。 public class i

深入理解计算机系统第二章家庭作业_typedef unsigned float-爱代码爱编程

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> typedef unsigned char* byte_pointer; //输入为一个字节序列的地址(