力扣面试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;
    }
}
相关推荐
Java实践笔记15 分钟前
40亿QQ号,只有1G内存,怎么存储和去重?
算法·面试·腾讯
Musennn29 分钟前
leetcode93.复原IP地址:回溯算法中段控制与前导零处理的深度解析
java·数据结构·算法·leetcode
爱coding的橙子32 分钟前
每日算法刷题计划Day20 6.2:leetcode二分答案3道题,用时1h20min
算法·leetcode·职场和发展
GoldenaArcher1 小时前
Fullstack 面试复习笔记:操作系统 / 网络 / HTTP / 设计模式梳理
网络·笔记·面试
工呈士1 小时前
React进阶:状态管理选择题
前端·react.js·面试
CodeWithMe1 小时前
【C/C++】面试常考题目
c语言·c++·面试
江城开朗的豌豆1 小时前
JavaScript篇:Symbol:JavaScript里最神秘的‘记号’,你会用了吗?
前端·javascript·面试
江城开朗的豌豆1 小时前
JavaScript篇:【前端必备】数组方法大全:从‘会写’到‘玩出花’,你掌握几个?
前端·javascript·面试
江城开朗的豌豆2 小时前
JavaScript篇:JS数据类型大乱斗:谁才是类型判断的王者?
前端·javascript·面试
岁忧2 小时前
LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 上
数据库·sql·leetcode