码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-11-28 23:06:15      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:就是   数据   mil   code   一个   list   时间   image   tree node   

技术图片

宽度优先搜索,层序遍历各节点,并记录各节点所在层,时间复杂度 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. 二叉树的最大深度(深搜/广搜)

标签:就是   数据   mil   code   一个   list   时间   image   tree node   

原文地址:https://www.cnblogs.com/NiBosS/p/11954328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!