力扣面试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;
    }
}
相关推荐
沐怡旸2 小时前
【底层机制】 Android ION内存分配器深度解析
android·面试
沐怡旸2 小时前
【穿越Effective C++】条款17:以独立语句将newed对象置入智能指针——异常安全的智能指针初始化
c++·面试
flashlight_hi3 小时前
LeetCode 分类刷题:141. 环形链表
javascript·算法·leetcode
用户9714171814274 小时前
JavaScript 数组方法完全指南
javascript·面试
晴殇i4 小时前
《效率翻倍!12个被90%前端忽视的CSS神技》
前端·css·面试
Kt&Rs4 小时前
11.9 LeetCode 题目汇总与解题思路
算法·leetcode
ゞ 正在缓冲99%…4 小时前
leetcode1547.切棍子的最小成本
数据结构·算法·leetcode·动态规划
2401_841495645 小时前
【LeetCode刷题】移动零
数据结构·python·算法·leetcode·数组·双指针法·移动零
开心星人5 小时前
Leetcode hot100 Java刷题(二)
java·算法·leetcode
hn小菜鸡5 小时前
LeetCode 153.寻找旋转排序数组中的最小值
数据结构·算法·leetcode