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;
        }
    };


  • 相关阅读:
    mongodb 修改最大连接数
    js hook eval
    js hook ajax
    js hook cookie
    windows启动redis命令行
    springboot结合redis使用token实现登录注销功能
    springboot实现滑动验证码
    Java读取指定路径文件中的所有资源
    com.alibaba.fastjson.annotation.JSONField依赖
    springboot和session实现验证码功能
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5166633.html
Copyright © 2011-2022 走看看