2020牛客多校第七場C-A National Pandemic
阿新 • • 發佈:2020-09-08
題目描述
輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度為樹的深度。
例如:
給定二叉樹 [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
提示:
節點總數 <= 10000
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof
程式碼實現
/** * 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 maxDepth(TreeNode* root) { if(!root) return 0; queue<TreeNode*> node_queue; TreeNode* p = root; node_queue.push(p); int layer_num = 0; while(!node_queue.empty()) { queue<TreeNode*> tmp; while(!node_queue.empty()) { TreeNode* cur_node = node_queue.front(); if(cur_node->left) tmp.push(cur_node->left); if(cur_node->right) tmp.push(cur_node->right); node_queue.pop(); } node_queue = tmp; layer_num++; } return layer_num; } };
思路解析
- 層序遍歷二叉樹,使用
tmp
佇列儲存當前層的所有節點,layer_num++
。