leetcodeブラシのタイトル・ノート(Golang) - 。129和のルートにリーフ番号

葉の番号に129合計ルート

のみ0-9の数字を含むバイナリツリーが与えられると、各ルート・ツー・リーフパス番号を表すことができます。

例は、数123を表すルート・ツー・リーフパス1-> 2-> 3です。

すべてのルート・ツー・葉の数の合計を検索します。

注:葉は子を持たないノードです。

例:

入力:[1,2,3]
1
/
2 3
出力:25
説明:
ルート・ツー・リーフパス1-> 2数12表す
ルート・ツー・リーフパス1-> 3は数13を表します。
したがって、合計= 12 + 13 = 25
例2:

入力:[4,9,0,5,1]
4
/
9 0
/
5 1
出力:1026
説明:
ルート・ツー・リーフパス-4-> 9-> 5は、数495を表す
ルート・ツー・リーフ経路4-> 9-> 1は、数491を表す
ルート・ツー・リーフ経路4-> 0は、数40を表す
和が= 495 + 491 + 40 = 1026したがって。

func sumNumbers(root *TreeNode) int {
	if root == nil {
		return 0
	}
	res := 0
	dfs(root, 0, &res)
	return res
}

func dfs(curr *TreeNode, path int, paths *int) {
	if curr.Left == nil && curr.Right == nil {
        fmt.Println()
		*paths += path*10+curr.Val
	}
	if curr.Left != nil {
		dfs(curr.Left, path*10+curr.Val, paths)
	}
	if curr.Right != nil {
		dfs(curr.Right, path*10+curr.Val, paths)
	}
}
公開された98元の記事 ウォンの賞賛0 ビュー1463

おすすめ

転載: blog.csdn.net/weixin_44555304/article/details/104403256
おすすめ