Leetcode 559. N叉樹的最大深度
給定一個 N 叉樹,找到其最大深度。
最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數。
思路與一:在求二叉樹深度的模板上進行修改
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) {
val = _val;
}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
int dfs(Node *root){
if(!root) return 0;
int res=0;//這裡不能設定為全域性變數
for(int i=0;i<root->children.size();i++){
res =max(dfs(root->children[i]),res);
}
return res+1;
}
int maxDepth(Node* root) {
int ans = dfs(root);
return ans;
}
};
思路二:利用層次遍歷求深度
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) {
val = _val;
}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
int maxDepth(Node* root) {
if(root==NULL) return 0;
queue<Node*> que;
if (root != NULL) que.push(root);
int depth = 0;
while (!que.empty()) {
int size = que.size();//這裡簡直了
depth++; // 記錄深度
//寫i<que.size()就無法通過,也是奇怪了
for (int i = 0; i < size; i++) {
Node* node = que.front();
que.pop();
for (auto it:node->children) {
que.push(it);
}
}
}
return depth;
}
};
相關文章
- LeetCode每日一題: N叉樹的最大深度(No.559)LeetCode每日一題
- 程式碼隨想錄演算法訓練營day16 | leetcode 104. 二叉樹的最大深度、559. N 叉樹的最大深度、111. 二叉樹的最小深度、222. 完全二叉樹的節點個數演算法LeetCode二叉樹
- LeetCode 104.二叉樹的最大深度LeetCode二叉樹
- LeetCode每日一題:二叉樹的最大深度(No.104)LeetCode每日一題二叉樹
- 二叉樹的最大/最小深度二叉樹
- 二叉樹的最大深度20201231二叉樹
- 二叉樹的最大深度和最小深度二叉樹
- [Golang]力扣Leetcode—初級演算法—樹—二叉樹的最大深度Golang力扣LeetCode演算法二叉樹
- 程式碼隨想錄 第十六天 | ● 104.二叉樹的最大深度 559.n叉樹的最大深度 ● 111.二叉樹的最小深度 ● 222.完全二叉樹的節點個數二叉樹
- 104. 二叉樹的最大深度二叉樹
- leetcode 111 二叉樹的最小深度LeetCode二叉樹
- LeeCode-104. 二叉樹的最大深度二叉樹
- LeetCode654. 最大二叉樹LeetCode二叉樹
- 程式碼隨想錄演算法訓練營第十四天|leetcode226. 翻轉二叉樹、leetcode101.對稱二叉樹、leetcode104.二叉樹的最大深度、leetcode111.二叉樹的最小深度演算法LeetCode二叉樹
- 「leetcode」111.二叉樹的最小深度LeetCode二叉樹
- n叉樹vs二叉樹二叉樹
- Leetcode 590. N叉樹的後序遍歷(DAY 2)LeetCode
- Day16 | 104.二叉樹的最大深度 、111.二叉樹的最小深度 、222.完全二叉樹的節點個數二叉樹
- 程式碼隨想錄day14 || 226 翻轉二叉樹,101 對稱二叉樹, 104 二叉樹的最大深度, 111 二叉樹的最小深度二叉樹
- LeetCode 124. 二叉樹中的最大路徑和 | PythonLeetCode二叉樹Python
- 資料結構的故事之二叉樹, 字首樹, N叉樹資料結構二叉樹
- 二叉樹的深度二叉樹
- N叉樹——前序遍歷
- 【LeetCode刷題(中等程度)】662. 二叉樹最大寬度LeetCode二叉樹
- 二叉樹深度二叉樹
- 二叉樹---深度二叉樹
- 二叉樹任意兩個節點間的最大距離(Java,LeetCode 543二叉樹的直徑 遞迴)二叉樹JavaLeetCode遞迴
- 程式碼隨想錄演算法訓練營第十七天|leetcode654. 最大二叉樹、leetcode617.合併二叉樹、leetcode700.二叉搜尋樹中的搜尋、leetcode98.驗證二叉搜尋樹演算法LeetCode二叉樹
- 【leetcode 簡單】第二十七題 二叉樹的最小深度LeetCode二叉樹
- 【LeetCode-二叉樹】二叉樹前序遍歷LeetCode二叉樹
- 二叉樹的子結構、深度以及重建二叉樹二叉樹
- 資料結構丨N叉樹資料結構
- LeetCode 對稱二叉樹LeetCode二叉樹
- 圖解精選 TOP 面試題 002 | 104. 二叉樹的最大深度圖解面試題二叉樹
- 程式碼隨想錄演算法訓練營第第16天 | 104.二叉樹的最大深度 、111.二叉樹的最小深度、222.完全二叉樹的節點個數演算法二叉樹
- 程式碼隨想錄演算法訓練營第十六天 | 104.二叉樹的最大深度 111.二叉樹的最小深度 222.二叉樹的節點個數演算法二叉樹
- 5分鐘瞭解二叉樹之LeetCode裡的二叉樹二叉樹LeetCode
- 111. 二叉樹的最小深度(***)二叉樹