当前位置: 代码迷 >> 综合 >> 输入一棵二叉树,求该树的深度。 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
  详细解决方案

输入一棵二叉树,求该树的深度。 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

热度:32   发布时间:2024-02-28 16:32:25.0

输入一棵二叉树,求该树的深度。 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

 

public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}
}public class TreeDepth {/*** 递归版本*/public int TreeDepth(TreeNode root) {//深度优先遍历if (root==null) {return 0;}int left=TreeDepth(root.left);int right=TreeDepth(root.right);return Math.max(left, right)+1; 
}/*** 非递归,层序遍历* @param args*/public int depth(TreeNode root) {if (root==null) {return 0;}Queue<TreeNode> queue=new LinkedList<>();int depth=0;queue.offer(root);while (queue.isEmpty()) {int size=queue.size();for (int i = 0; i < size; i++) {TreeNode node=queue.poll();if (node.left!=null) {queue.offer(node.left);}if (node.right!=null) {queue.offer(node.right);}}depth++;}return depth;}		

 

  相关解决方案