leetcodeブラシタイトル・ノート(Golang) - 86パーティションのリスト。

86パーティションリスト
にリンクされたリストと値xが与えられると、それはそのようなすべてのノードが少ないxがx以上のノードの前に来るよりも、そのパーティション。

あなたは、2つのパーティションのそれぞれのノードのオリジナルの相対的な順序を保存する必要があります。

例:

入力:ヘッド= 1-> 4-> 3-> 2-> 5-> 2、X = 3
出力:1-> 2-> 2-> 4-> 3-> 5

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func partition(head *ListNode, x int) *ListNode {
	if head == nil {
		return head
	}
	dummy := ListNode{Val: 0}
	greaterDummy := ListNode{Val: 0}
	greaterNode := &greaterDummy
	lessNode := &dummy
	node := head
	for node != nil {
		if node.Val < x {
			lessNode.Next = node
			lessNode = node
		} else {
			greaterNode.Next = node
			greaterNode = node
		}
        //fmt.Println(lessNode.Val,greaterNode.Val)
		node = node.Next
	}
    greaterNode.Next=nil
    lessNode.Next = greaterDummy.Next
    return dummy.Next
}
公開された65元の記事 ウォンの賞賛0 ビュー347

おすすめ

転載: blog.csdn.net/weixin_44555304/article/details/104320673