38、剑指offer--二叉树深度
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
解题思路:
1、只有一个根结点,树的深度为1
2、根结点只有左子树,没有右子树,树的深度=左子树深度+1
3、根结点只有右子树,没有左子树,树的深度=右子树深度+1
1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9 };*/ 10 class Solution { 11 public: 12 int TreeDepth(TreeNode* pRoot) 13 { 14 if(pRoot == NULL) 15 return 0; 16 int nLeft = TreeDepth(pRoot->left); 17 int nRight = TreeDepth(pRoot->right); 18 19 return (nLeft > nRight)?(nLeft+1):(nRight+1); 20 } 21 };