zoukankan      html  css  js  c++  java
  • [LeetCode]Partition List

    题目:Partition List

    给定一个链表和数值x,保证小于该数值x的都在他左边,其他的相对位置不能改变。

    思路:

    遍历一边链表,小于x的节点连在一起,其他的连在一起,不改变他们的顺序在首尾相连就可以了。

    package com.example.medium;
    
    /**
     * Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
     * You should preserve the original relative order of the nodes in each of the two partitions.
     * 
     * For example,
     * Given 1->4->3->2->5->2 and x = 3,
     * return 1->2->2->4->3->5.
     * @author FuPing
     *
     */
    public class Partition {
    
        public class ListNode {
             int val;
             ListNode next;
             ListNode(int x) { val = x; }
         }
        public ListNode partition(ListNode head, int x) {
            ListNode lessList = null,moreList = null;
            ListNode lessTail = null,moreTail = null;
            while(head != null){
                if(head.val < x){
                    if(lessList == null){
                        lessList = head;
                        lessTail = head;
                    }else{
                        lessTail.next = head;
                        lessTail = lessTail.next;
                    }
                }else{
                    if(moreList == null){
                        moreList = head;
                        moreTail = head;
                    }else{
                        moreTail.next = head;
                        moreTail = moreTail.next;
                    }
                }
                head = head.next;
            }
            if(lessList == null)return moreList;
            lessTail.next = moreList;
            if(moreList != null)moreTail.next = null;
            return lessList;
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
        }
    
    }
  • 相关阅读:
    js的元素对象
    js实现在末尾添加节点
    js实现点击增加文本输入框
    js的DOM对象
    js其它
    js实现99乘法表
    js
    http的六种请求方法
    11.进制
    10.Debug
  • 原文地址:https://www.cnblogs.com/yeqluofwupheng/p/6685575.html
Copyright © 2011-2022 走看看