zoukankan      html  css  js  c++  java
  • (剑指Offer)面试题39:二叉树的深度

    题目:

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

    结点的定义如下:

    struct TreeNode{
        int val;
        TreeNode* left;
        TreeNode* right;
    };

    思路:

    对于树的问题基本都可以通过递归来解决。

    一棵二叉树的深度,等于它的左子树深度和右子树深度的较大者+1;

    递归的结束条件就是:该结点为空,深度为0;

    代码:

    struct TreeNode{
        int val;
        TreeNode* left;
        TreeNode* right;
    };
    
    int TreeDepth(TreeNode* pRoot){
        if(pRoot==NULL)
            return 0;
        int left=TreeDepth(pRoot->left);
        int right=TreeDepth(pRoot->right);
        return left>right?(left+1):(right+1);
    }
    

    在线测试OJ:

    http://www.nowcoder.com/books/coding-interviews/435fb86331474282a3499955f0a41e8b?rp=2

    AC代码:

    /*
    struct TreeNode {
        int val;
        struct TreeNode *left;
        struct TreeNode *right;
        TreeNode(int x) :
                val(x), left(NULL), right(NULL) {
        }
    };*/
    class Solution {
    public:
        int TreeDepth(TreeNode* pRoot)
        {
            if(pRoot==NULL)
                return 0;
            int left=TreeDepth(pRoot->left);
            int right=TreeDepth(pRoot->right);
             
            return left>right?(left+1):(right+1);
        }
    };
  • 相关阅读:
    C#+Arcengine创建内存图层
    Creating a Feature Set via C#
    ArcGIS Server for JavaScript api安装部署
    Lucene.Net 3.0.3如何从TokenStream中获取token对象
    MMSEG 中文算法说明
    java DotNet char 代码对应
    Lucene.Net 3.0.3如何从TokenStream中获取token对象
    java DotNet char 代码对应
    9.7
    9.6
  • 原文地址:https://www.cnblogs.com/AndyJee/p/4678622.html
Copyright © 2011-2022 走看看