104.二叉树的最大深度
- 二叉树
/**
* Definition for a Node.
* type Node struct {
* Val int
* Children []*Node
* }
*/
var res int
var dept int
func dfs(root *Node) {
if root == nil {
return
}
dept++
res = max(res, dept)
dfs(root.Left)
dfs(root.Right)
dept--
}
func maxDepth(root *Node) int {
res = 0
dept = 0
dfs(root)
return res
}
- N叉树
/**
* Definition for a Node.
* type Node struct {
* Val int
* Children []*Node
* }
*/
var res int
var dept int
func dfs(root *Node) {
if root == nil {
return
}
dept++
res = max(res, dept)
for i := 0; i < len(root.Children); i++ {
dfs(root.Children[i])
}
dept--
}
func maxDepth(root *Node) int {
res = 0
dept = 0
dfs(root)
return res
}
111.二叉树的最小深度
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
var res int
var dept int
func dfs(root *TreeNode) {
if root == nil {
return
}
dept++
dfs(root.Left)
dfs(root.Right)
if root.Left == nil && root.Right == nil {
res = min(res, dept)
}
dept--
}
func minDepth(root *TreeNode) int {
res = 100010
dept = 0
dfs(root)
if root == nil {
res = 0
}
return res
}
222.完全二叉树的节点个数
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
var count int
func dfs (root *TreeNode) {
if root == nil {
return
}
count++
dfs(root.Left)
dfs(root.Right)
}
func countNodes(root *TreeNode) int {
count = 0
dfs(root)
return count
}
扫描二维码,在手机上阅读
推荐阅读:
收藏