二叉树的深度

给定一个二叉树,求二叉树的深度,即从跟节点到叶节点的最长路径。
若只有一个顶点,则深度为1,若二叉树为空则返回0。
输入、输出描述
输入:
给定一个二叉树的根节点
输出:
二叉树的深度
Example
输入:
二叉树如下:
    1
   / \
   2  3
  /
  4
   \
    5
输出:
4
代码:
import java.util.*;
import java.util.LinkedList;
import java.util.Queue;

public class Main {

    /**
    //该段代码仅用于调试,提交时请注释该段代码
    class TreeNode<T> {

        public T data;

        public TreeNode<T> left;

        public TreeNode<T> right;
    }
 */ 


    public int solution(TreeNode<Integer> root) {
        if (root == null) {
            return 0;
        }

        Queue<TreeNode<Integer>> queue = new LinkedList<>();
        queue.add(root);
        int depth = 0;
        while (!queue.isEmpty()) {
            depth++;

            int size = queue.size();
            for (int i = 0; i < size; i++) {
                TreeNode<Integer> node = queue.poll();
                if (node.left != null) {
                    queue.add(node.left);
                }
                if (node.right != null) {
                    queue.add(node.right);
                }
            }

        }

        return depth;
    }
}
一个创业中的苦逼程序员
评论专区

隐藏