JZ38 二叉树的深度
原题链接
描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
示例
输入:{1,2,3,4,5,#,6,#,#,7}
返回值:4
思路
二叉树递归求高度。
解答
public class Solution {
public int TreeDepth(TreeNode root) {
int deep = 0;
if (root==null) return 0;
return 1 + Math.max(TreeDepth(root.left),TreeDepth(root.right));
}
}
更
BFS层次遍历。
package com.klaus.tree.prob55_1;
import java.util.ArrayDeque;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public class Solution {
// bfs
public int depth(TreeNode root) {
if (root == null) return 0;
int res = 0;
ArrayDeque<TreeNode> queue = new ArrayDeque<>();
queue.add(root);
while (!queue.isEmpty()) {
int size= queue.size();
while (size-- != 0) {
TreeNode remove = queue.poll();
if (remove.left != null) queue.add(remove.left);
if (remove.right != null) queue.add(remove.right);
}
res++;
}
return res;
}
}
本文来自博客园,作者:klaus08,转载请注明原文链接:https://www.cnblogs.com/klaus08/p/15108079.html

JZ38 二叉树的深度
浙公网安备 33010602011771号