当前位置: 代码迷 >> 综合 >> Submission Details
  详细解决方案

Submission Details

热度:57   发布时间:2023-09-29 12:45:24.0

给出一个二叉树,要求求出从树中任意一个节点到另一节点的最长路径的长度(长度是经过节点个数-1)。可能不经过跟节点

          1/ \2   3/ \     4   5     Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3]
本来想用动态规划的方法自底而上进行求解,但这样比较浪费空间。在参考discus后,可以将maxlength提取出来,每次与之前的最大值相比较。

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;}
};


  相关解决方案