leetcode 86 分隔鍊錶

2021-10-07 15:29:39 字數 634 閱讀 9830

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

你應當保留兩個分割槽中每個節點的初始相對位置。

示例:

輸入:head = 1->4->3->2->5->2, x = 3輸出:1->2->2->4->3->5
那麼這個題目我們可以引入兩個頭結點before、after。就是將鍊錶中小於給定特定值的都放在before鏈中,大於等於的都放在after的鏈中。after鏈的最後乙個是鍊錶中的最大值也是調整後鍊錶的最後乙個結點。所以它的指向為null.而before鏈與after鏈連線起來。就是整個調整後的鍊錶。

public listnode partition(listnode head, int x) 

else

head = head.next;

}//將分後的最後乙個結點的next置為空

aftercur.next = null;

//將兩個進行拼接

beforecur.next = after.next;

return before.next;

}

Leetcode86 分隔鍊錶

題目描述 給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5演算法描述 此題有兩種解法,第一種就是將所有小於給定值的節點取...

leetcode86 分隔鍊錶

給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 把所有小於給定值的節點都移到前面,大於該值的節點順序不變。將所有小於給...

leetcode86分隔鍊錶

給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 新建兩個鍊錶,給定的特定值。對鍊錶分隔,將小於特定值的節點放在乙個鍊...