递归:
依照三大方法:循环条件 返回值类型 循环语句
迭代:
用层序遍历 遍历每一层 直到遍历到最底层(每一层数量增加)
跟最大深度差不多但是要明白最小深度的意思
最小深度:最小深度是从根节点到最近叶子节点的最短路径上的节点数量
所以如果出现:左边为空 右边不为空则返回右边的值(让左边的值等于右边值加一再取最小)
右边为空 左边不为空则返回左边的值(让右边的值等于左边值加一再取最小)
迭代法:
通过层序遍历只要遍历到叶子结点就返回
222. 完全二叉树的节点个数 - 力扣(LeetCode)
递归法:
- 确定递归函数的参数和返回值:参数就是传入树的根节点,返回就返回以该节点为根节点二叉树的节点数量,所以返回值为int类型。
- 确定终止条件:如果为空节点的话,就返回0,表示节点数为0。
- 确定单层递归的逻辑:先求它的左子树的节点数量,再求右子树的节点数量,最后取总和再加一 (加1是因为算上当前中间节点)就是目前节点为根节点的节点数量。
迭代法:
遍历每一个结点