【543 Diameter of Binary Tree】深度优先搜素思维运用
来源:互联网 发布:源码云平台 编辑:程序博客网 时间:2024/06/06 02:18
一、题目解析
这道题题意就是一个二叉树找出路径长度最大的两个点,并将这两个点的路径长度输出为结果。需要注意的就是路径不一定非得经过根节点,这也是容易犯错的地方,也是这道题的难点所在。
二、思路分析
这道题首先很容易想到从根节点开始,分别计算左右子节点的深度然后相加即为结果,这种思路是最容易误入的。因为最长路径很可能是不经过根节点的。那么从深度优先搜索DFS的思想出发,从某一节点开始,计算路过以该节点为根节点的最长路径,并将其与之前的最长路径进行比较,若大于当前最长路径,则新路径为最长路径,否则之前的路径仍旧为最长路径。在计算某一节点的最长路径时,即为该节点开始左右子树的深度和。那么DFS遍历这棵二叉树的每一个节点,就可以计算出这棵二叉树两叶子节点之间的最长路径了。
三、代码实现
class Solution {public: int maxdiadepth = 0; int dfs(TreeNode* root){ if(root == NULL) return 0; int leftdepth = dfs(root->left); int rightdepth = dfs(root->right); if(leftdepth + rightdepth > maxdiadepth) { maxdiadepth = leftdepth + rightdepth; } return max(leftdepth +1, rightdepth + 1); } int diameterOfBinaryTree(TreeNode* root) { dfs(root); return maxdiadepth; }};
0 0
- 【543 Diameter of Binary Tree】深度优先搜素思维运用
- leetcode 543. Diameter of Binary Tree 最长树的片段 + 深度优先遍历DFS
- Diameter of Binary Tree
- Diameter of Binary Tree
- Diameter of Binary Tree
- Diameter of Binary Tree
- Diameter of Binary Tree
- leetcode(543). Diameter of Binary Tree
- LeetCode 543 Diameter of Binary Tree
- 【Leetcode-easy-543】Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- LeetCode543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 百度地图
- 使用字符流读写数据
- Power View in 2016Excel
- LeetCode之Assign Cookies
- android studio 中 .9.png的制作
- 【543 Diameter of Binary Tree】深度优先搜素思维运用
- Design Pattern(11)-Iterator Pattern
- Android的性能优化方法
- wxPython sizer放置窗口部件
- Fragment学习小结
- [刷题]Codeforces 746G
- IT类的专业有哪些
- LeetCode007 Reverse Integer
- vb.net 教程 1-10 List 2