C語言遞歸之二叉樹的最大深度

題目描述node

給定一個二叉樹,找出其最大深度。網絡

二叉樹的深度爲根節點到最遠葉子節點的最長路徑上的節點數。spa

說明: 葉子節點是指沒有子節點的節點。code

 

示例blog

給定二叉樹 [3,9,20,null,null,15,7]遞歸

    3
   / \
  9  20
    /  \
   15   7

返回它的最大深度 3 。leetcode

 

題目要求get

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     struct TreeNode *left;
 6  *     struct TreeNode *right;
 7  * };
 8  */
 9 
10 int maxDepth(struct TreeNode* root){
11 
12 }

 

題解it

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     struct TreeNode *left;
 6  *     struct TreeNode *right;
 7  * };
 8  */
 9 
10 int _max(int a,int b){
11     return a>b?a:b;
12 }
13 
14 int maxDepth(struct TreeNode* root){
15     if(root==NULL)return 0;
16 /*
17     加這三行會快一些,在數據量小的時候(上限高)
18     if(root->left==NULL&&root->right==NULL)return 1;
19     else if(root->left==NULL)return maxDepth(root->right)+1;
20     else if(root->right==NULL)return maxDepth(root->left)+1;
21 */
22     return 1+_max(maxDepth(root->left),maxDepth(root->right));
23 }

 

 

簽到遞歸題,遞歸題只要狀況考慮周到了,尤爲是根節點爲空的狀況,就應該不會寫錯。io

 

題目來源:力扣(LeetCode)
連接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。

相關文章
相關標籤/搜索