【算法题】最大深度,最小深度

来源:互联网 发布:中文手写识别 算法 编辑:程序博客网 时间:2024/06/04 19:44

最大深度

求一颗二叉树的最大深度

深度优先搜索、递归

int MaxDepth(TreeNode * root){    if (root ==NULL)    {        return 0;    }    return max(MaxDepth(root->left),MaxDepth(root->right))+1;}

最小深度

求一颗二叉树的最小深度,即从根节点到叶子节点的最短路径长度

不能直接将上段代码中max改成min,因为需要判断当前节点属性

int MinDepth(TreeNode* root) {    if (NULL == root)        return 0;    int l = MinDepth(root->left);    int r = MinDepth(root->right);    if (!l)        return r + 1;               //只有右子树    if (!r)        return l + 1;               //只有左子树    return (l < r) ? l + 1 : r + 1;//有两个子树,选少的}
原创粉丝点击