二叉樹的最大深度(LintCode)
阿新 • • 發佈:2019-01-05
題目來源:LintCode
原題地址:http://www.lintcode.com/zh-cn/problem/maximum-depth-of-binary-tree/
題目:
容易
思路分析:
遍歷每個節點,返回該節點左右子樹中深度較大的一個
實現程式碼:
程式碼說明:
需要注意的是,在返回值時,需要將左右子樹的深度加1,這個代表此節點自己的位置。
如果沒有+1操作,會得到錯誤的答案。
原題地址:http://www.lintcode.com/zh-cn/problem/maximum-depth-of-binary-tree/
題目:
給定一個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的距離。
您在真實的面試中是否遇到過這個題? Yes 樣例給出一棵如下的二叉樹:
1
/ \
2 3
/ \
4 5
這個二叉樹的最大深度為3
.
容易
思路分析:
遍歷每個節點,返回該節點左右子樹中深度較大的一個
實現程式碼:
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { public: /** * @param root: The root of binary tree. * @return: An integer */ int maxDepth(TreeNode *root) { if (root == NULL) { return 0; } int left = maxDepth(root->left); int right = maxDepth(root->right); return (left > right) ? left + 1 : right + 1; } };
程式碼說明:
需要注意的是,在返回值時,需要將左右子樹的深度加1,這個代表此節點自己的位置。
如果沒有+1操作,會得到錯誤的答案。