更新 problems 102

This commit is contained in:
YDZ
2019-06-22 22:23:44 +08:00
parent 7884c4d048
commit bfc7e3ffc0

View File

@ -8,6 +8,8 @@ package leetcode
* Right *TreeNode
* }
*/
// 解法一 BFS
func levelOrder(root *TreeNode) [][]int {
if root == nil {
return [][]int{}
@ -39,3 +41,23 @@ func levelOrder(root *TreeNode) [][]int {
}
return res
}
// 解法二 DFS
func levelOrder_(root *TreeNode) [][]int {
levels := [][]int{}
dfsLevel(root, -1, &levels)
return levels
}
func dfsLevel(node *TreeNode, level int, res *[][]int) {
if node == nil {
return
}
currLevel := level + 1
for len(*res) <= currLevel {
*res = append(*res, []int{})
}
(*res)[currLevel] = append((*res)[currLevel], node.Val)
dfsLevel(node.Left, currLevel, res)
dfsLevel(node.Right, currLevel, res)
}