计算二叉树的深度和节点个数
时间: 2023-09-04 21:12:00 浏览: 135
计算二叉树的深度可以通过递归的方式实现。对于一个二叉树,它的深度等于左右子树深度的较大值加一。如果树为空,深度为0。
以下是一个计算二叉树深度的示例代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def maxDepth(root: TreeNode) -> int:
if not root:
return 0
left_depth = maxDepth(root.left)
right_depth = maxDepth(root.right)
return max(left_depth, right_depth) + 1
```
计算二叉树的节点个数也可以通过递归的方式实现。对于一个二叉树,它的节点个数等于左右子树节点个数之和加一。如果树为空,节点个数为0。
以下是一个计算二叉树节点个数的示例代码:
```python
def countNodes(root: TreeNode) -> int:
if not root:
return 0
left_count = countNodes(root.left)
right_count = countNodes(root.right)
return left_count + right_count + 1
```
需要注意的是,以上两个函数都是通过递归实现的,时间复杂度为O(n),其中n为节点个数。
阅读全文