博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode: Maximum Depth of Binary Tree
阅读量:6982 次
发布时间:2019-06-27

本文共 1748 字,大约阅读时间需要 5 分钟。

题目:算出二叉树的最大深度

解决方案:(1)BFS (2)DFS

(1)BFS

一层一层往下搜索,一直找到最深的点,这里由于节点的val是没有用的,所以可以用来存储当前节点的深度,然后注意指针一定要初始化,不然在leetcode里可能会出现runtime error

/** * 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;        list
node_list; node_list.push_back(root); root->val=1; int maxe=1; while (node_list.size() != 0) { TreeNode* now_node=NULL;//指针需要初始化 now_node = node_list.front(); node_list.pop_front(); if (now_node->left != NULL) { node_list.push_back(now_node->left); now_node->left->val=now_node->val+1; if(now_node->left->val>maxe)maxe=now_node->left->val; } if (now_node->right != NULL) { node_list.push_back(now_node->right); now_node->right->val=now_node->val+1; if(now_node->right->val>maxe)maxe=now_node->right->val; } } return maxe; }};

(2) DFS

用递归的方法来写该题的程序,代码会很简洁

/** * 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;        int leftmax=0, rightmax=0;        leftmax=maxDepth(root->left);        rightmax=maxDepth(root->right);        if(leftmax>rightmax) return leftmax+1;        else return rightmax+1;    }};

转载于:https://www.cnblogs.com/gremount/p/5768008.html

你可能感兴趣的文章
管理11gRAC基本命令 (转载) 很详细
查看>>
数据库 SQL语法一
查看>>
实现物体绕不同轴旋转,并可以外部调用的函数
查看>>
UDP socket 设置为的非阻塞模式
查看>>
Atitit截屏功能的设计解决方案
查看>>
mysql通过binlog日志来恢复数据
查看>>
JWT实现token-based会话管理
查看>>
Shell学习笔记 - 环境变量配置文件(转)
查看>>
CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果...
查看>>
scikit-learn 入门
查看>>
调用百度云Api实现从百度云盘自动下载文件
查看>>
Java中的List
查看>>
Mycat原理、应用场景
查看>>
几种进程间的通信方式
查看>>
算法笔记_120:蓝桥杯第六届省赛(Java语言B组部分习题)试题解答
查看>>
第二百一十七节,jQuery EasyUI,NumberSpinner(数字微调)组件
查看>>
Linq使用Group By
查看>>
三个简单的问题,让你顺势而为
查看>>
安全测试报告解读
查看>>
Golang适合高并发场景的原因分析
查看>>