12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package main
- // ListNode ...
- /* type ListNode struct {
- Val int
- Next *ListNode
- } */
- /* func list2str(head *ListNode) string {
- curr := head
- str := make([]rune, 0)
- for curr != nil {
- str = append(str, rune(curr.Val+'0'))
- curr = curr.Next
- }
- return string(str)
- } */
- /**
- * Definition for singly-linked list.
- * type ListNode struct {
- * Val int
- * Next *ListNode
- * }
- */
- // func partition(head *ListNode, x int) *ListNode {
- // if head == nil || head.Next == nil {
- // return head
- // }
- // dummy := ListNode{0, head}
- // fast, slow := &dummy, &dummy
- // // slow -> body -> fast -> target -> tail
- // // => slow -> target -> body -> fast -> tail
- // // => slow -> body -> fast -> tail
- // // or fast/slow -> tail
- // for fast != nil {
- // if fast.Next != nil && fast.Next.Val < x {
- // if fast == slow {
- // fast = fast.Next
- // } else {
- // tail := fast.Next.Next
- // fast.Next.Next = slow.Next
- // slow.Next = fast.Next
- // fast.Next = tail
- // }
- // slow = slow.Next
- // } else {
- // fast = fast.Next
- // }
- // }
- // return dummy.Next
- // }
- /* func main() {
- l15 := ListNode{5, nil}
- l14 := ListNode{0, &l15}
- l13 := ListNode{6, &l14}
- l12 := ListNode{3, &l13}
- l1 := &ListNode{7, &l12}
- fmt.Println(list2str(partition(l1, 6)))
- fmt.Println(list2str(partition(nil, 9)))
- l23 := ListNode{3, nil}
- l22 := ListNode{2, &l23}
- l2 := &ListNode{1, &l22}
- fmt.Println(list2str(partition(l2, 9)))
- }
- */
|