刷題 力扣 面試題 02 04 分割鍊錶

2022-09-18 13:21:09 字數 1013 閱讀 3752

題目鏈結

題目描述

給你乙個鍊錶的頭節點 head 和乙個特定值 x ,請你對鍊錶進行分隔,使得所有 小於 x 的節點都出現在 大於或等於 x 的節點之前。

你不需要 保留 每個分割槽中各節點的初始相對位置。

示例 1:

輸入:head = [1,4,3,2,5,2], x = 3

輸出:[1,2,2,4,3,5]

示例 2:

輸入:head = [2,1], x = 2

輸出:[1,2]

題目分析

根據題目描述,將小於x的節點放置於左側,大於等x的節點放置於右側,節點順序無要求

設定兩個頭節點,分別接收小於x的節點,和大於等於x的節點,最後將兩個鍊錶連線起來

**

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

listnode* maxnode = new listnode();

listnode* minnode = new listnode();

listnode* pmax = maxnode;

listnode* pmin = minnode;

while (head) else

head = head->next;

}pmax->next = nullptr;

pmin->next = maxnode->next;

head = minnode->next;

delete maxnode;

delete minnode;

return head;}};

面試題 02 04 分割鍊錶

編寫程式以 x 為基準分割鍊錶,使得所有小於 x 的節點排在大於或等於 x 的節點之前。如果鍊錶中包含 x,x 只需出現在小於 x 的元素之後 如下所示 分割元素 x 只需處於 右半部分 即可,其不需要被置於左右兩部分之間。definition for singly linked list.stru...

面試題 02 04 分割鍊錶

編寫程式以 x 為基準分割鍊錶,使得所有小於 x 的節點排在大於或等於 x 的節點之前。如果鍊錶中包含 x,x 只需出現在小於 x 的元素之後 如下所示 分割元素 x 只需處於 右半部分 即可,其不需要被置於左右兩部分之間。示例 輸入 head 3 5 8 5 10 2 1,x 5 輸出 3 1 2...

LeetCode 面試02 04 分割鍊錶

編寫程式以 x 為基準分割鍊錶,使得所有小於 x 的節點排在大於或等於 x 的節點之前。如果鍊錶中包含 x,x 只需出現在小於 x 的元素之後 如下所示 分割元素 x 只需處於 右半部分 即可,其不需要被置於左右兩部分之間。示例 輸入 head 3 5 8 5 10 2 1,x 5 輸出 3 1 2...