剑指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

回到顶部