已解答 简单
相关标签
相关企业给你一棵 完全二叉树 的根节点 root
,求出该树的节点个数。
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h
层,则该层包含 1~ 2h
个节点。
示例 1:
输入:root = [1,2,3,4,5,6]
输出:6
示例 2:
输入:root = []
输出:0
示例 3:
输入:root = [1]
输出:1
提示:
- 树中节点的数目范围是
[0, 5 * 104]
0 <= Node.val <= 5 * 104
- 题目数据保证输入的树是 完全二叉树
进阶:遍历树来统计节点是一种时间复杂度为 O(n)
的简单解决方案。你可以设计一个更快的算法吗?
func countNodes(root *TreeNode) int { if root == nil { return0 } left, right := root.Left, root.Right leftMaxDepht, rightMaxDepht := 0, 0 for left != nil { left = left.Left leftMaxDepht++ } for right != nil { right = right.Right rightMaxDepht++ } //如果左深与右深一致,则用完全二叉树特性 1<<n-1 直接返回 if leftMaxDepht == rightMaxDepht { return1<<(leftMaxDepht+1) - 1 } return1 + countNodes(root.Left) + countNodes(root.Right) }
已解答 简单
相关标签
相关企业给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:2
示例 2:
输入:root = [2,null,3,null,4,null,5,null,6
func minDepth(root *TreeNode) int { if root == nil { return0 } leftHeight := minDepth(root.Left) rightHeight := minDepth(root.Right) if root.Left == nil { return rightHeight + 1 } if root.Right == nil { return leftHeight + 1 } if leftHeight > rightHeight { return rightHeight + 1 } return leftHeight + 1 }
104. 二叉树的最大深度 已解答 简单 相关标签 相关企业
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:3
示例 2:
输入:root = [1,null,2]
输出:2
提示:
- 树中节点的数量在
[0, 104]
区间内。 -100 <= Node.val <= 100
已解答 简单
相关标签
相关企业给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。
示例 1:
输入:root = [1,null,3,2,4,null,5,6]
输出:3
示例 2:
输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
输出:5
提示:
- 树的深度不会超过
1000
。 - 树的节点数目位于
[0, 104]
之间。
func maxDepth(root *Node) int { if root == nil { return0 } varchildMaxDepthint for_, child := range root.Children { cur := maxDepth(child) if cur > childMaxDepth { childMaxDepth = cur } } return childMaxDepth + 1 } 标签:示例,随想录,二叉树,深度,null,root,节点 From: https://www.cnblogs.com/suxinmian/p/18017740