leetcode Partition List

原创 2016年05月31日 11:48:17

题目链接

package newcoder;

class ListNode {
      int val;
      ListNode next;
      ListNode(int x) { val = x; }
}

public class Solution {
    public static void main(String args[])
    {
        Solution
        obj=new Solution();
        ListNode h=new ListNode(2);

        h.next=new ListNode(1);
        obj.partition(h, 1);

    }


    public ListNode partition(ListNode head, int x) {
        if(head==null)
        {
            return head;
        }
        ListNode result=null;
        ListNode current=head;
        ListNode bigList=null;


        ListNode resultTal=null;
        ListNode bigTal=null;
        if(head.val>=x)
        {
            bigList=head;
            while(current.next!=null&&current.next.val>=x)
            {

                    current=current.next;

            }
            resultTal=result=current.next;
            bigTal=current;
        }
        else
        {
            result=head;
            while(current.next!=null&&current.next.val<x)
            {

                    current=current.next;

            }
            bigTal=bigList=current.next;
            resultTal=current;
        }
        if(current.next!=null)//current.next 已经处理
        {
            current=current.next.next;
        }
        else
        {
            current=null;
        }


        while(current!=null)
        {
            if(current.val<x)
            {
                resultTal.next=current;
                resultTal=current;
            }
            else
            {
                bigTal.next=current;
                bigTal=current;
            }
            current=current.next;
        }
        if(bigTal!=null)
        {
            bigTal.next=null;
        }
        if(result==null)
        {
            return bigList;
        }
        resultTal.next=bigList;
        return result;
    }
}

【leetcode】【单链表】【86】Partition List

#include using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x...
  • ruan875417
  • ruan875417
  • 2015年05月24日 16:02
  • 248

LeetCode Partition List 按值分段链表 系统分析

在原链表操作就是分为三段: 第一段:小值; 第二段:大于等于的值; 第三段:是还没有处理完的值。 但是有3个情况:1 可能开始的时候全部小值, 2 可能开始的时候全部是大值 3 分了三段的情...
  • kenden23
  • kenden23
  • 2013年11月16日 19:32
  • 2028

LeetCode总结 -- 树的构造篇

这篇总结主要介绍树中比较常见的一类题型--树的构造。其实本质还是用递归的手法来实现,但是这类题目有一个特点,就是它是构建一棵树,而不是给定一棵树,然后进行遍历,所以实现起来思路上有点逆向,还是要练习一...
  • linhuanmars
  • linhuanmars
  • 2014年11月12日 10:40
  • 13835

leetcode -- 494. Target Sum【数学转化 + 动态规划】

题目 You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now you have 2 ...
  • TheSnowBoy_2
  • TheSnowBoy_2
  • 2017年02月14日 09:54
  • 1682

LeetCode之Tree题目汇总

Balanced Binary TreeGiven a binary tree, determine if it is height-balanced.For this problem, a heig...
  • Yano_nankai
  • Yano_nankai
  • 2015年12月29日 20:43
  • 688

LeetCode之Graph题目汇总

Course ScheduleThere are a total of n courses you have to take, labeled from 0 to n - 1.Some courses...
  • Yano_nankai
  • Yano_nankai
  • 2015年12月30日 10:25
  • 444

【leetcode 单链表归并排序】Sort List

1、题目 2、分析 3、归并排序代码 4、快速排序代码
  • u012162613
  • u012162613
  • 2014年11月09日 22:13
  • 1531

【LeetCode-面试算法经典-Java实现】【086-Partition List(将单链表进行分区)】

【086-Partition List(将单链表进行分区)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a linked list and a value ...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月05日 06:50
  • 1708

C++STL隨手筆記(二)List容器的splice及std::partition用法

list容器內建splice這個函數,可以將容器依指定範圍切割, 以及std的partition可以對容器中的元素進行條件篩選並排續, 稱著記憶猶新趕快記錄下來用法。 #include #in...
  • shengchikuo
  • shengchikuo
  • 2016年12月09日 19:34
  • 929

Leetcode 372. Super Pow 快速幂计算 解题报告

1 解题思想这道题需要计算 a^b % c 的值,其中b非常的大,大到只能使用数组来表示。这道题是ACM里面常见的快速幂的解题方式,这其中有一个数学的推论,可以看我代码里附带的那个解释。 总之,这...
  • MebiuW
  • MebiuW
  • 2016年07月07日 19:20
  • 6426
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode Partition List
举报原因:
原因补充:

(最多只允许输入30个字)