| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | 
 
 
 
 
 
 func partition(head *ListNode, x int) *ListNode {
 
 var s, l ListNode
 sPtr, lPtr := &s, &l
 for p := head; p != nil; p = p.Next {
 if p.Val < x {
 sPtr.Next = &ListNode{Val: p.Val}
 sPtr = sPtr.Next
 } else {
 lPtr.Next = &ListNode{Val: p.Val}
 lPtr = lPtr.Next
 }
 }
 sPtr.Next = l.Next
 return s.Next
 }
 
 |