题目:
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
思路:
根的深度=MAX(左子树深度,右子树深度)+1;
Code:
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: int TreeDepth(TreeNode* pRoot) { if(pRoot==NULL) return 0; int left=0,right=0;//不能写left=right=0; if(pRoot->left!=NULL) left=TreeDepth(pRoot->left); if(pRoot->right!=NULL) right=TreeDepth(pRoot->right); return (left>right?left:right)+1; } };