1181 · 二叉树的直径
方法1:DFS
//1.经过根节点,左右子树的最大深度相加
//2.不经过根节点,找出根节点的左子树或者根节点的右子树作为根节点的最长路径
int maxv = 0;
public int diameterOfBinaryTree(TreeNode root) {
// write your code here
dfs(root);
return maxv;
}
private int dfs(TreeNode root) {
if (root == null) return 0;
int left = dfs(root.left);
int right = dfs(root.right);
maxv = Math.max(maxv, left + right);
return Math.max(left, right) + 1;
}
该博客探讨了一种使用深度优先搜索(DFS)解决二叉树最大直径问题的方法。通过递归地计算以每个节点为根的子树的最大深度,并考虑不经过根节点的最长路径,找到整个二叉树的直径。代码中定义了`diameterOfBinaryTree`函数和辅助的`dfs`函数,展示了如何利用DFS策略高效地计算二叉树的直径。

301

被折叠的 条评论
为什么被折叠?



