class Solution {
// 路径
int path = 0;
public int longestUnivaluePath(TreeNode root) {
// 特例
if (root == null)
return 0;
// 递归
treeTraverse(root, 0);
return path;
}
private int treeTraverse(TreeNode root, int pre) {
// 特例,不判断会空指针
if (root == null)
return 0;
// 遍历左右节点
int left = treeTraverse(root.left, root.val);
int right = treeTraverse(root.right, root.val);
// 计算路径
path = Math.max(left + right, path);
// 当两者相等时
if (root.val == pre)
return Math.max(left, right) + 1;
return 0;
}
}
LeetCode 687最长同值路径(Java)
最新推荐文章于 2023-09-06 10:36:59 发布