zoukankan      html  css  js  c++  java
  • leetcode Maximum Depth of Binary Tree

    返回树的深度。

    递归:

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int maxDepth(TreeNode *root) 
        {
            if (!root) return 0;
            int l = maxDepth(root -> left);
            int r = maxDepth(root -> right);
            return max(l + 1, r + 1);
        }
    };

     非递归的解法:

    public int maxDepth(TreeNode root) {
        if(root == null)
            return 0;
        
        int depth = 0;
        LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
        queue.add(root);
        int curNum = 1; //num of nodes left in current level
        int nextNum = 0; //num of nodes in next level
        while(!queue.isEmpty()){
            TreeNode n = queue.poll();
            curNum--;
            if(n.left!=null){
                queue.add(n.left);
                nextNum++;
            }
            if(n.right!=null){
                queue.add(n.right);
                nextNum++;
            }
            if(curNum == 0){
                curNum = nextNum;
                nextNum = 0;
                depth++;
            }
        }
        return depth;
    }
    View Code
  • 相关阅读:
    Iscroll4使用心得 (转)
    请求接口数据实例
    jQuery插件开发全解析(转)
    js中可以改变作用域的三种方式(改变this)
    this基础(转)
    Hash扫盲
    JS编码解码 (转)
    自定义菜单实例
    DOM(转)
    js扫盲
  • 原文地址:https://www.cnblogs.com/higerzhang/p/4128650.html
Copyright © 2011-2022 走看看