/* 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==nullptr) return 0; if (pRoot->left == nullptr) { return TreeDepth(pRoot->right) + 1; } if (pRoot->right == nullptr){ return TreeDepth(pRoot->left) + 1; } int m_left = TreeDepth(pRoot->left); int m_right = TreeDepth(pRoot->right); return max(m_left, m_right)+1; } };
最小深度spa
class Solution { public: int run(TreeNode *root) { if (root==nullptr) return 0; if (root->left == nullptr) { return run(root->right) + 1; } if (root->right == nullptr){ return run(root->left) + 1; } int m_left = run(root->left); int m_right = run(root->right); return min(m_left, m_right)+1; } };
用遞歸求解二叉樹深度的分析: https://blog.csdn.net/fisherming/article/details/75096410.net