二叉樹的深度——劍指Offer|簡單題|JZ38
阿新 • • 發佈:2021-01-11
題目線上測試連線:二叉樹的深度_牛客網 (nowcoder.com)
題目:輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
題解:
int TreeDepth(TreeNode* pRoot) { int depth = 1; //假設當前節點存在,則深度為一 if(!pRoot) //如果當前節點不存在,返回0 return 0; depth = max(depth, TreeDepth(pRoot->left) + 1); //當前節點存在,深度為max(1,左子樹+1) depth = max(depth, TreeDepth(pRoot->right) + 1); //當前節點存在,深度為max(depth,右子樹+1) return depth; }
思路:分治,返回以子節點為根節點的完整子樹的最大深度+1;
示意圖:
TreeDepth(node_B)= 2