美文网首页
面试题55_1:二叉树的深度

面试题55_1:二叉树的深度

作者: 繁星追逐 | 来源:发表于2019-11-12 14:25 被阅读0次

输入一棵二叉树,求该树的深度。

  • 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

思路: 递归空节点则返回0,否则调用自身,传入左节点,右节点,最后返回左递归和右递归的最大值+1。
或者非递归应用层次遍历去求

public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }

    }

    /**
     * 递归版本
     * @param root
     * @return
     */
    public int TreeDepth(TreeNode root) {
      if (root == null) return 0;
      //每调用一次递归,如果当前节点不为空,则返回值每次加1,统计出深度大小
      int left = TreeDepth(root.left);
      int right = TreeDepth(root.right);

//      return Math.max(left,right) + 1;
      return left>right ? left+1 : right+1;

    }

    /**
     * 非递归版本,层次遍历
     * @param root
     * @return
     */
    public int TreeDepth1(TreeNode root){
        if (root == null) return 0;
        LinkedList<TreeNode> queue = new LinkedList();
        queue.offer(root);
        int depth = 0;
        while (!queue.isEmpty()){
            //遍历同层节点,添加下一层节点
            for (int i=0;i<queue.size();i++){
                TreeNode t = queue.poll();
                if (t.left != null) queue.offer(t.left);
                if (t.right != null) queue.offer(t.right);
             }
             depth++;
        }
     return depth;
    }

相关文章

  • 面试题55_1:二叉树的深度

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

  • 剑指offer第二版-55.二叉树的深度

    本系列导航:剑指offer(第二版)java实现导航帖 面试题55:二叉树的深度 题目要求:求二叉树的深度。仅仅包...

  • 二叉树面试题基本问题

    二叉树的最大深度与最小深度 二叉树的最大深度 最大深度是指二叉树根节点到该树叶子节点的最大路径长度。而最小深度自然...

  • 111. Minimum Depth of Binary Tre

    题目 给定一个二叉树,求二叉树最小深度 解析 一个二叉树的最小深度,就是求左子树最小深度或者右子树最小深度,然后加...

  • 二叉树的深度系列

    LeetCode 104 二叉树的最大深度 题目 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节...

  • leetcode上二叉树和递归 java

    二叉树天然的递归结构104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节...

  • LeetCode | 树相关题目

    LeetCode 104.二叉树的最大深度 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最...

  • Swift 二叉树的最大深度- LeetCode

    题目: 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点...

  • (初级)4.二叉树的最大深度

    二叉树的最大深度给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明:...

  • LeetCode 104. 二叉树的最大深度

    104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点...

网友评论

      本文标题:面试题55_1:二叉树的深度

      本文链接:https://www.haomeiwen.com/subject/isgyuctx.html