力扣面试150题--分隔链表

day 39

题目描述

思路

遍历链表,每一个点与值比较,比值小就继续,比值大就放到链表尾部即可

java 复制代码
/**
 * 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) {
        if(head==null){
            return null;
        }
        ListNode fakehead=new ListNode();
        fakehead.next=head;
        ListNode z=head;
        while(z.next!=null){
            z=z.next;
        }
        ListNode before=fakehead;
        ListNode y=head;
        ListNode end=z;
        while(y!=end){
            if(y.val>=x){
                z.next=y;
                before.next=y.next;
                y=y.next;
                z=z.next;
                z.next=null;
            }
            else{
                before=before.next;
                y=y.next;
            }
        }
        if(y.val>=x){
                z.next=y;
                before.next=y.next;
                y=y.next;
                z=z.next;
                z.next=null;
            }
        return fakehead.next;
    }
}
相关推荐
一匹电信狗9 小时前
【数据结构】堆的完整实现
c语言·数据结构·c++·算法·leetcode·排序算法·visual studio
un_fired10 小时前
【leetcode刷题日记】lc.78-子集
算法·leetcode
积极向上的向日葵12 小时前
双向链表详解
c语言·数据结构·链表·双向链表
昔我往昔13 小时前
使用mybatis实例类和MySQL表的字段不一致怎么办
java·面试·mybatis
阳洞洞14 小时前
滑动窗口leetcode 209和76
算法·leetcode·双指针·滑动窗口
冠位观测者18 小时前
【Leetcode 每日一题】2071. 你可以安排的最多任务数目
数据结构·算法·leetcode
到底怎么取名字不会重复19 小时前
Day15(贪心算法)——LeetCode121.买卖股票的最佳时机&55.跳跃游戏
c++·算法·leetcode·游戏·贪心算法
机器视觉知识推荐、就业指导21 小时前
Qt/C++面试【速通笔记五】—子线程与GUI线程安全交互
c++·qt·面试·gui·子线程
大魔王(已黑化)1 天前
LeetCode —— 94. 二叉树的中序遍历
数据结构·c++·算法·leetcode·职场和发展