104. 二叉树的最大深度(深搜/广搜)

Posted niboss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了104. 二叉树的最大深度(深搜/广搜)相关的知识,希望对你有一定的参考价值。

技术图片

宽度优先搜索,层序遍历各节点,并记录各节点所在层,时间复杂度 O(n)。

 1 /**
 2   * Definition for a binary tree node.
 3   * struct TreeNode {
 4   *     int val;
 5   *     TreeNode *left;
 6   *     TreeNode *right;
 7   *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 8   * };
 9   */
10 class Solution {
11 public:
12     struct node {
13         int step; //记录节点所在层
14         TreeNode* root; //节点指针
15         node(int x, TreeNode* p) :step(x), root(p) {}; //节点初始化
16     };
17     queue<node> list;
18     int maxDepth(TreeNode* root) {
19         if (!root) return 0; //过滤特殊数据
20         node v(1, NULL); //设置队列节点存储变量
21         list.push(node(1, root)); //压入头节点
22         while (!list.empty()) {
23             v = list.front();
24             list.pop();
25             if (v.root->left) list.push(node(v.step + 1, v.root->left)); //非空入队
26             if (v.root->right) list.push(node(v.step + 1, v.root->right));
27         }
28         return v.step; //最后一个节点所在层的数值就是数的深度
29     }
30 };

 

以上是关于104. 二叉树的最大深度(深搜/广搜)的主要内容,如果未能解决你的问题,请参考以下文章

代码随想录算法训练营第16天 | ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数

java刷题--104二叉树的最大深度

LeetCode第104题—二叉树的最大深度—Python实现

Leetcode题目104.二叉树的最大深度(DFS+BFS简单)

⭐算法入门⭐《二叉树》简单04 —— LeetCode 104. 二叉树的最大深度

[LeetCode] 104. 二叉树的最大深度