題目鏈結
題目描述
給你乙個鍊錶的頭節點 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...