【劍指offer】輸入一顆二叉樹的根節點,求二叉樹的深度,C++實現


原創博文,轉載請注明出處!

# 題目

image

image

# 舉例

       下圖二叉樹的深度為4,最長路徑為1-2-5-7.

image

 

# 思路(遞歸)

      如果一個樹只有一個節點,它的深度為1;

      如果根節點只有左子樹而沒有右子樹,那么樹的深度應該是其左子樹的深度+1;

      如果根節點只有右子樹而沒有左子樹,那么樹的深度應該是其右子樹的深度+1;

      如果根節點既有左子樹又有右子樹,那么樹的深度應該是左右字數深度的較大值+1.

# 代碼

  1 class Solution {
  2 public:
  3     int TreeDepth(TreeNode* pRoot)
  4     {
  5         if(pRoot == nullptr)
  6             return 0;
  7         int left = TreeDepth(pRoot->left);
  8         int right = TreeDepth(pRoot->right);
  9 
 10         return (left>right) ? (left+1) : (right+1);
 11 
 12     }
 13 };


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM