Leetcode 二叉樹的最大深度
阿新 • • 發佈:2018-12-24
給定一個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
示例:
給定二叉樹 [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回它的最大深度 3 。
求最大深度只需要遞迴左右子樹,求左右子樹的最大高度,然後在此基礎上+1即可。
c:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int maxDepth(struct TreeNode* root) { if(root==NULL) return 0; int left=maxDepth(root->left)+1; int right=maxDepth(root->right)+1; return left>right? left:right; }
c++:
/** * Definition for a binary tree node. * 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==NULL) return 0; return max(maxDepth(root->left)+1,maxDepth(root->right)+1); } };