题目:
来源:二叉树的最大深度
给定一个二叉树,找出其最大深度。
示例:
解题思路及代码
1.思路
要知道一棵二叉树的深度,我们只要知道根结点的左子树的深度和右子树的深度,两者较大的那一个加上1即为整个二叉树的深度,以左子树为例,我们要知道左子树的深度,就要知道左子树的左子树和左子树的右子树中深度较大的深度值,再加上1即为左子树的深度,依次类推,我们需要递归至叶子层,然后不断的返回各层的深度,直到返回整个左子树的深度,对于右子树同理。
2.代码
var maxDepth = function(root) {
if(root == null) {
return 0;
} else {
var leftHeight = maxDepth(root.left);
var rightHeight = maxDepth(root.right);
return Math.max(leftHeight, rightHeight) + 1;
}
}
迭代的思想:从根结点开始访问二叉树时,每往下访问一层即在上一层的深度上加1,直到访问到二叉树最底层,所得到的深度即为二叉树的深度。自顶向下遍历整个二叉树。 可采用层序遍历,先挖个坑,后续再来写代码