力扣面试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;
    }
}
相关推荐
大锦终18 分钟前
【算法】前缀和经典例题
算法·leetcode
cccc来财1 小时前
Java实现大根堆与小根堆详解
数据结构·算法·leetcode
倔强青铜三2 小时前
为什么 self 与 super() 成了 Python 的永恒痛点?
人工智能·python·面试
恣艺2 小时前
LeetCode 854:相似度为 K 的字符串
android·算法·leetcode
刚入坑的新人编程3 小时前
暑期算法训练.9
数据结构·c++·算法·leetcode·面试·排序算法
小徐不徐说6 小时前
动态规划:从入门到精通
数据结构·c++·算法·leetcode·动态规划·代理模式
前端小巷子6 小时前
深入 npm 模块安装机制
前端·javascript·面试
jtymyxmz6 小时前
刷题日记0726
leetcode
小新学习屋6 小时前
《剑指offer》-数据结构篇-树
数据结构·算法·leetcode
此心安处是吾乡10246 小时前
数据结构 双向链表
数据结构·链表