本文共 879 字,大约阅读时间需要 2 分钟。
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树[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); }};
转载地址:http://fvaen.baihongyu.com/