Ejemplo n.º 1
0
    ListNode *partition(ListNode *head, int x) {
		if (!head) return head;
        ListNode left_dummy(-1);
        ListNode right_dummy(-1);
        ListNode* node = head;
        ListNode* left_node = &left_dummy;
        ListNode* right_node = &right_dummy;
        while (node)
        {
            if (node->val < x)
            {
                left_node->next = node;
                left_node = node;
            }
            else
            {
                right_node->next = node;
                right_node = node;
            }
            node = node->next;
        }
        left_node->next = right_dummy.next;
        right_node->next = NULL;
        return left_dummy.next;
    }
Ejemplo n.º 2
0
    ListNode *partition(ListNode *head, int x) {
        ListNode left_dummy(-1);
        ListNode right_dummy(-1);
        
        ListNode *ptr_left = &left_dummy;
        ListNode *ptr_right = &right_dummy;
        
        for (ListNode *p = head; p != NULL; p = p->next)
        {
            if (p->val < x)
            {
                ptr_left->next = p;
                ptr_left = p;
            }
            else
            {
                ptr_right->next = p;
                ptr_right = p;
            }
        }

        ptr_left->next = right_dummy.next;
        ptr_right->next = NULL;

        return left_dummy.next;
    }
Ejemplo n.º 3
0
    ListNode* partition(ListNode* head, int x) { 
    	ListNode left_dummy(-1); // 头结点 
    	ListNode right_dummy(-1); // 头结点
        auto left_cur = &left_dummy;
        auto right_cur = &right_dummy;
        for (ListNode *cur = head; cur; cur = cur->next) {
            if (cur->val < x) {
                left_cur->next = cur;
                left_cur = cur;
            } else {
                right_cur->next = cur;
                right_cur = cur;
            }
		}
        left_cur->next = right_dummy.next;
        right_cur->next = nullptr;
        return left_dummy.next;
    }
Ejemplo n.º 4
0
	ListNode* partition(ListNode* head, int x){
		if (head == nullptr)return head;
		ListNode left_dummy(0);
		ListNode right_dummy(0);
		auto left_cur = &left_dummy;
		auto right_cur = &right_dummy;
		for (; head; head = head->next){
			if (head->val < x){
				left_cur->next = head;
				left_cur = head;
			}
			else{
				right_cur->next = head;
				right_cur = head;
			}
		}
		left_cur->next = right_dummy.next;
		right_cur->next = nullptr;
		return left_dummy.next;
	}