版权声明:原创勿转 https://cloud.tencent.com/developer/article/1412877
新建两个列表用于保存结果
空间复杂度不太好。。
func partition(head *ListNode, x int) *ListNode {
beforehead := &ListNode{}
before := beforehead
afterhead := &ListNode{}
after := afterhead
for head != nil {
if head.Val < x {
before.Next = head
before = before.Next
} else {
after.Next = head
after = after.Next
}
head = head.Next
}
after.Next = nil
before.Next = afterhead.Next
return beforehead.Next
}