只把小的放在一邊,大於的不用放到右邊(這個題的題目比較晦澀,很多人說看不懂題,我也沒看懂,解法也沒什麼特殊,半天沒讀懂題,看了別人的解法)給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。
你應當保留兩個分割槽中每個節點的初始相對位置。
示例:輸入: head = 1->4->3->2->5->2, x = 3
輸出: 1->2->2->4->3->5
/**
* definition for singly-linked list.
* type listnode struct
*/func
partition
(head *listnode, x int
)*listnode
less:=
new(listnode)
cur_l := less
more :=
new(listnode)
cur_m :=more
cur := head
for cur !=
nil cur_l = cur_l.next
}else
cur_m = cur_m.next
}cur = cur.next
}cur_l.next = more.next
return less.next
}
86 分隔鍊錶
給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3輸出 1 2 2 4 3 5 definition for singly linked list.st...
86 分隔鍊錶
給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 方法 遍曆法 思路 定義兩個新鍊錶,head鍊錶逐個開頭遍歷,大於等...
86 分隔鍊錶
本來想用快慢指標做的,就像面試題02.04,交換節點的值,但是這樣不能保證每個結點的初始相對位置,於是就只能構造兩個鍊錶large和small,分別存放大於x的節點和小於x的節點,再把兩個鍊錶拼接起來。definition for singly linked list.struct listnode...