二叉树的深度:最直观的想法是,深度指的是从根节点到叶子节点的垂直距离,其使用的是前序遍历,而高度指的是从叶子节点到根节点的垂直距离,其使用的是后序遍历,那么可以将求二叉树的深度转换为求二叉树的高度,根节点的高度等于左子树与右子树的最大高度加一。
// 将二叉树的深度转换为二叉树的高度 高度采用后序遍历 根节点的高度等于左子树高度与右子树高度最大值加一 int PostOrder(TreeNode* cur) { if(cur==nullptr) return 0; int left=PostOrder(cur->left); int right=PostOrder(cur->right); int result=max(left,right)+1; return result; } int TreeDepth(TreeNode* pRoot) { return PostOrder(pRoot); }