輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度為樹的深度。
例如:
給定二叉樹 [3,9,20,null,null,15,7],
3/ \
9 20
/ \
15 7
返回它的最大深度 3 。
一、 dfs/遞迴
(後序遍歷)
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
dfs(root->left,depth+1)
;dfs
(root->right,depth+1)
;}intmaxdepth
(treenode* root)
};
執行用時:20 ms, 在所有 c++ 提交中擊敗了25.04% 的使用者
記憶體消耗:18.7 mb, 在所有 c++ 提交中擊敗了99.60% 的使用者
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
if(root==
null
)return0;
depth++
;maxdepth
(root->left)
;maxdepth
(root->right)
; depth--
;//回退
return max;}}
;
執行用時:12 ms, 在所有 c++ 提交中擊敗了82.87% 的使用者
記憶體消耗:18.8 mb, 在所有 c++ 提交中擊敗了92.55% 的使用者
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
};
執行用時:16 ms, 在所有 c++ 提交中擊敗了54.01% 的使用者
記憶體消耗:19.1 mb, 在所有 c++ 提交中擊敗了65.29% 的使用者
二、bfs
(層序遍歷)
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
depth++;}
return depth;}}
;
執行用時:32 ms, 在所有 c++ 提交中擊敗了8.89% 的使用者
記憶體消耗:19.2 mb, 在所有 c++ 提交中擊敗了30.32% 的使用者
劍指offer 55 I 二叉樹的深度
輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 節點總數 10000 數的遍歷可以分為 深度優先搜尋dfs 廣度...
劍指 Offer 55 I 二叉樹的深度
難度簡單27收藏分享切換為英文關注反饋 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最大深度 3 definition fo...
劍指 Offer 55 I 二叉樹的深度
劍指 offer 55 i.二叉樹的深度 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 9 20 15 7 返回它的最大深度 3 節點總數 10000 3....