力扣面试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;
    }
}
相关推荐
菜菜的顾清寒20 分钟前
力扣HOT100(50)动态规划-零钱兑换
算法·leetcode·动态规划
8Qi825 分钟前
LeetCode 148. 排序链表 —— 解法二:自底向上归并(迭代,O(1) 空间)
数据结构·算法·leetcode·链表·归并·迭代
凯瑟琳.奥古斯特26 分钟前
力扣1235完整解法详解
java·开发语言·leetcode
Byron__29 分钟前
Redis高可用面试知识:持久化+主从复制+哨兵机制
redis·面试·bootstrap
凯瑟琳.奥古斯特1 小时前
力扣1001网格照明解法
算法·leetcode·职场和发展
papership2 小时前
【入门级-数据结构-1、线性结构:链 表(单链表、双向链表、循环链表 )】
数据结构·算法·链表
自传.2 小时前
Redis 高频考试面试知识点2(主从复制、缓存穿透/击穿/雪崩、集群分片、切片)
redis·缓存·面试
郝学胜-神的一滴2 小时前
力扣 144:二叉树前序遍历的优雅实现
java·数据结构·c++·python·算法·leetcode·职场和发展
沐一的blog2 小时前
Java 并发 100 问:从面试到生产(二)
后端·面试
Sam_Deep_Thinking2 小时前
一个业务场景只需要一个ThreadLocal实例
java·面试