687. 最长同值路径
给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。
注意:两个节点之间的路径长度由它们之间的边数表示。
链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
function longestUnivaluePath(root: TreeNode | null): number { let res = 0 if (root === null) return res function dfs(node: TreeNode | null) { if (node === null) return 0 const l = dfs(node.left) const r = dfs(node.right) let lRes = 0, rRes = 0 if(node.left && node.left.val === node.val) { lRes = l + 1 } if (node.right && node.right.val == node.val) { rRes = r + 1 } res = Math.max(res, rRes + lRes) return Math.max(rRes, lRes) } dfs(root) return res };
|