剑指Offer输入一棵二叉树,求该树的深度。
非递归:
利用队列存储二叉树每一行的结点,然后弹出,深度加一
import java.util.LinkedList;public class Solution {
public int TreeDepth(TreeNode root) {
if (root == null)
return 0;
int d = 0, count = 0, nextCount = 1;
LinkedList<TreeNode> queue = new LinkedList<>();
queue.add(root);
while(queue.size() != 0){
TreeNode node = queue.poll();
count++;
if(node.left != null){
queue.add(node.left);
}
if(node.right != null){
queue.add(node.right);
}
if(count == nextCount){
d++;
count = 0;
nextCount = queue.size();
}
}
return d;
}
}
递归:
递归每个父节点的左右子结点
public int TreeDepth(TreeNode root) { if(root==null)
return 0;
return Math.max(TreeDepth(root.left), TreeDepth(root.right)) + 1;
}
以上是 剑指Offer输入一棵二叉树,求该树的深度。 的全部内容, 来源链接: utcz.com/z/512911.html