📜  给定二叉树的最长直线路径长度

📅  最后修改于: 2021-10-25 11:22:17             🧑  作者: Mango

给定一棵二叉树,任务是找到给定二叉树的最长直线路径的长度。

例子:

方法:想法是使用后序遍历。请按照以下步骤解决问题:

  1. 对于每个节点,检查当前节点的方向(向左或向右),并检查其子节点的哪个方向为其下方提供了该节点的最长长度。
  2. 如果当前节点的方向和给出最长长度的子节点的方向不同,则保存该子节点的结果并将另一个子节点的长度传递给其父节点。
  3. 使用上述步骤在每个节点找到最长的直线路径并保存结果以打印所有直线路径中的最大值。
  4. 经过以上步骤打印最大路径。

下面是上述方法的实现:

代码块

输出:
2

时间复杂度: O(N)
辅助空间: O(1)

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程。