基于二叉链表的二叉树最长路径的求解
时间: 2024-05-25 17:06:34 浏览: 131
基于二叉链表的二叉树最长路径的求解可以通过递归的方式实现。下面是一个示例代码:
```python
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def construct_tree(preorder):
if not preorder or preorder[0] == '0':
return None
root = Node(preorder[0])
root.left = construct_tree(preorder[1:])
root.right = construct_tree(preorder[1:])
return root
def find_longest_path(root):
if not root:
return 0
left_height = find_longest_path(root.left)
right_height = find_longest_path(root.right)
return max(left_height, right_height) + 1
# 示例输入:AB0C00D00
preorder = list(input().strip())
root = construct_tree(preorder)
longest_path = find_longest_path(root)
print("The length of the longest path in the binary tree is:", longest_path)
```
该代码首先定义了一个`Node`类来表示二叉树的节点,每个节点包含一个值和左右子节点。然后,通过递归的方式构建二叉树,根据输入的先序序列来构建二叉树。最后,使用递归函数`find_longest_path`来计算二叉树中的最长路径,该函数返回以当前节点为根的子树的最大高度。最终,输出最长路径的长度。
阅读全文