二叉樹的深度

題目描述

輸入一棵二叉樹的根結點,求該樹的深度。

從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

樣例

輸入:二叉樹[8, 12, 2, null, null, 6, 4, null, null, null, null]如下圖所示:
    8
   / \
  12  2
     / \
    6   4

輸出:3

思路

利用dfs更簡潔,就是樹的深度其實就是左右子樹的深度+1,這個1就是根節(jié)點,遞歸出口是當遍歷的節(jié)點是nullptr的時候,return 0;

C++ 代碼

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int treeDepth(TreeNode* root) {
        if( root == NULL ) return 0;//根節(jié)點表示空 才返回0
        return max(treeDepth(root->left), treeDepth(root->right)) + 1;//+1表示根節(jié)點
    }
};
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容