zoukankan      html  css  js  c++  java
  • 086 Partition List 分隔链表

    给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。
    你应当保留两个分区中每个节点的初始相对位置。
    例如,
    给定1->4->3->2->5->2 和 x = 3,
    返回1->2->2->4->3->5.

    详见:https://leetcode.com/problems/partition-list/description/

    Java实现:

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode partition(ListNode head, int x) {
            if(head==null||head.next==null){
                return head;
            }
            
            ListNode small = new ListNode(-1);
            ListNode newSmall = small;
            ListNode big = new ListNode(-1);
            ListNode newBig = big;
            
            while(head!=null){
                if(head.val<x){
                    small.next = head;
                    small = small.next;
                }else{
                    big.next = head;
                    big = big.next;
                }
                head = head.next;
            }
            big.next = null;
            
            small.next = newBig.next;
            
            return newSmall.next;
        }
    }

     参考:https://www.cnblogs.com/springfor/p/3862392.html

  • 相关阅读:
    多线程
    python 进程间通信
    python 生产者消费者模型
    多线程锁
    io多路复用(三)
    div 加滚动条的方法
    10矩形覆盖
    11.二进制中1的个数
    12数值的整数次方
    9 变态跳台阶
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8715865.html
Copyright © 2011-2022 走看看