迁安做网站,赣州vi设计公司,南昌seo代理商,山东省建设部继续教育网站110. 平衡二叉树
给定一个二叉树#xff0c;判断它是否是高度平衡的二叉树。
本题中#xff0c;一棵高度平衡二叉树定义为#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 func isBalanced(root *TreeNode) bool {h:getHeight(root)if h -1{r…
110. 平衡二叉树
给定一个二叉树判断它是否是高度平衡的二叉树。
本题中一棵高度平衡二叉树定义为 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 func isBalanced(root *TreeNode) bool {h:getHeight(root)if h -1{return false}fmt.Println(h)return true
}
func getHeight(root *TreeNode)int{if root nil{return 0}l,r :getHeight(root.Left),getHeight(root.Right)if l -1 || r -1{return -1}if l-r 1 || r-l 1{ return -1}//如果遇到左右子树存在高度差距就直接返回return max(l,r) 1
}func max(a, b int) int {if a b {return a }return b
} 257. 二叉树的所有路径 给你一个二叉树的根节点 root 按 任意顺序 返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。
var res []string
func binaryTreePaths(root *TreeNode) []string {res []string{}travel(root,)return res
}
func travel(node *TreeNode, s string){if node.Left nil node.Right nil{v: s strconv.Itoa(node.Val)res append(res,v)return}s s strconv.Itoa(node.Val)-if node.Left!nil{travel(node.Left,s)}if node.Right! nil{travel(node.Right,s)}
}404. 左叶子之和
给你一个二叉树的根节点 root 按 任意顺序 返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。
左叶子就是 当前节点的左孩子没有孩子
func sumOfLeftLeaves(root *TreeNode) int {if root nil { return 0}lfV : sumOfLeftLeaves(root.Left)if root.Left!nil root.Left.Left nil root.Left.Right nil{lfV root.Left.Val}riV: sumOfLeftLeaves(root.Right)return lfV riV
}