思路
新建两个列表用于保存结果
空间复杂度不太好。。
code
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
}
更多内容请移步我的repo:https://github.com/anakin/golang-leetcode