力扣面试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;
    }
}
相关推荐
故事和你911 天前
洛谷-算法1-7-搜索3
数据结构·c++·算法·leetcode·动态规划
网域小星球1 天前
C++ 从 0 入门(四)|继承、多态、this 指针、深浅拷贝(C++ 面试终极收官)
开发语言·c++·面试·多态·继承·this指针·深浅拷贝
wq_1 天前
Mysql-MVCC
mysql·面试
疯狂打码的少年1 天前
有序线性表删除一个元素:顺序存储 vs 单链表,平均要移动多少个元素?
数据结构·算法·链表
y = xⁿ1 天前
20天速通LeetCode day07:前缀和
数据结构·算法·leetcode
liyuhh9851 天前
《接口幂等性设计的三种方案与实践》
面试
小雅痞1 天前
[Java][Leetcode hard] 42. 接雨水
java·开发语言·leetcode
Ruihong1 天前
Vue v-html 与 v-text 转 React:VuReact 怎么处理?
vue.js·react.js·面试
小徐不徐说1 天前
面试C++易错点总结
开发语言·c++·面试·职场和发展·程序设计·工作
北顾笙9801 天前
day26-数据结构力扣
数据结构·算法·leetcode