[LeetCode]543. Diameter of Binary Tree(计算二叉树的直径的长度)
来源:互联网 发布:金百福软件 打不开 编辑:程序博客网 时间:2024/06/02 03:13
543. Diameter of Binary Tree
原题链接
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.
给定一个二叉树,你需要计算树的直径的长度。 二叉树的直径是树中任意两个节点之间最长路径的长度。 此路径可能通过或不能通过根。
Example:
Given a binary tree
1 / \ 2 3 / \ 4 5 Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3].
Note: The length of path between two nodes is represented by the number of edges between them.
注意:两个节点之间的路径长度由它们之间的边数表示。
思路:
- 定义一个变量diameter,保存给定二叉树最大diameter值。
- 通过递归计算左右子树的深度来计算每个节点的diameter,通过和变量 diameter 进行比较,保存较大值。
- 在每一次递归结束后,返回节点左右子树较大的深度,左子树和右子树的深度相加就是根该节点的diameter。
代码如下:
C++struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public: int diameter = 0;// 全局变量,记录最大直径 int diameterOfBinaryTree(TreeNode* root) { if(root==nullptr || (root->left==nullptr && root->right==nullptr))//空节点 或者 左右孩子均为空的节点 return 0; getDepth(root); return diameter; } // 此函数是返回树的最大深度 int getDepth(TreeNode* root){ if(root == nullptr) return 0; int left = getDepth(root->left); int right = getDepth(root->right); if(left+right > diameter)//左子树和右子树的深度相加就是根该节点的直径 diameter = left + right; return right>left ? right+1 : left+1;//返回节点左右子树中较大的深度 }};
阅读全文
0 0
- [LeetCode]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 二叉树的直径
- leetcode解题之543. Diameter of Binary Tree Java版 (二叉树的最大直径)
- leetcode 543. Diameter of Binary Tree 最长树的片段 + 深度优先遍历DFS
- 543. Diameter of Binary Tree (二叉树)
- Leetcode-543. Diameter of Binary Tree
- [leetcode] 543. Diameter of Binary Tree
- 【Leetcode】543. Diameter of Binary Tree
- [LeetCode]543. Diameter of Binary Tree
- [LeetCode]543. Diameter of Binary Tree
- leetcode-543. Diameter of Binary Tree
- [leetcode]-543. Diameter of Binary Tree
- LeetCode 543. Diameter of Binary Tree
- (LeetCode) 543. Diameter of Binary Tree
- WPF简单教程:开篇
- 1017. A除以B (20)
- 点分治总结
- STL--> list 双向循环链表容器 接口使用及介绍。 模拟实现 STL list容器
- AngularJS实现一个HTML元素内容可编辑指令
- [LeetCode]543. Diameter of Binary Tree(计算二叉树的直径的长度)
- C/C++结构体struct的不同
- spring的配置文件applicationContext中没有快捷键问题
- Android studio gradle简单解析及使用指南
- python读取csv文件
- python列表操作,排序
- JSON是什么?
- Q-Learning的学习及简单应用
- 结构体定义 方法