104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree

来源:互联网 发布:java随机猜数字游戏 编辑:程序博客网 时间:2024/06/05 16:33

104. Maximum Depth of Binary Tree

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

111. Minimum Depth of Binary Tree

Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

题解: 给出一个 二叉树,104是 求树的最大深度,111是求树的最小深度;深度优先,递归求解,逐层加1;

104.

class Solution {public:    int maxDepth(TreeNode* root) {        return root == NULL ? 0 : max(maxDepth(root -> left), maxDepth(root -> right)) + 1;    }};
111.

class Solution {public:    int minDepth(TreeNode* root) {        if(root == NULL) return 0;        if(root->left == NULL) return 1 + minDepth(root->right);        if(root->right == NULL) return 1 + minDepth(root->left);        return 1+min(minDepth(root->left),minDepth(root->right));            }};
唯一要注意的是判断最小深度时,我们需要区分左右是否为空,否则会得到局部最优解;
运行结果: