zoukankan      html  css  js  c++  java
  • 【LeetCode】Partition List

    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.


    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode *partition(ListNode *head, int x) {
            ListNode *smallhead = NULL;
    	ListNode *bighead = NULL;
    	ListNode *tail_small = NULL;
    	ListNode *tail_big = NULL;
    	ListNode *cur = head;
    	if (head == NULL || head->next == NULL)
    	{
    		return head;
    	}
    	while(cur != NULL)
    	{
    		ListNode *tmp_next = cur->next;
    		if (cur->val < x)
    		{
    			if (smallhead == NULL)
    			{
    				smallhead = tail_small = cur;
    			}
    			else {
    				tail_small->next = cur;
    				tail_small = cur;
    			}
    		}
    		else{
    			if (bighead == NULL)
    			{
    				bighead = tail_big = cur;
    			}
    			else{
    				tail_big->next = cur;
    				tail_big = cur;
    			}
    		}
    		cur = tmp_next;
    	}
    	if (tail_small == NULL)
    	{
    		tail_big->next = NULL;
    		return bighead;
    	}
    	if (tail_big == NULL)
    	{
    		tail_small->next = NULL;
    		return smallhead;
    	}
    	tail_small->next = bighead;
    	tail_big->next = NULL;
    	return smallhead;
        }
    };


  • 相关阅读:
    面向对象继承
    webpack 错误提示 Error: Can't resolve 'css-loader'或Error: Can't resolve 'style-loader'
    Math.min() Math.max()
    表单
    addEventListener()
    H5图片背景
    ruby获取最新ruby
    js对象拷贝
    Oh-My-Zsh 下远程ssh的乱码问题
    MSSQL、MySQL 数据库删除大批量千万级百万级数据的优化
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5166633.html
Copyright © 2011-2022 走看看