使用 Python 中的方向列表遍历二叉树的程序
pythonserver side programmingprogramming更新于 2026/2/4 15:08:17
假设我们有一个二叉树和一个由"R"(右)、"L"(左)和"U"(上)组成的字符串移动列表。从根开始,我们必须通过执行每个移动来遍历树,其中:"R"表示遍历到右子节点。"L"表示遍历到左子节点。"U"表示遍历到其父节点。
因此,如果输入如下

["R","R","U","L"],则输出为 3
要解决这个问题,我们将遵循以下步骤 −
past := a new list
对于 moves 中的每个 move,执行
在 past 末尾插入 root
如果 move 与"L",则
root := 根的左边
否则,当移动与 "R" 相同时,则
root := 根的右边
否则,
从过去中删除最后一个元素
root := 过去的最后一个元素并从过去中删除它
返回 root 的值
让我们看看下面的实现以便更好地理解 −
示例
class TreeNode: def __init__(self, data, left = None, right = None): self.val = data self.left = left self.right = right class Solution: def solve(self, root, moves): past = [] for move in moves: past.append(root) if move == "L": root = root.left elif move == "R": root = root.right else: past.pop() root = past.pop() return root.val ob = Solution() root = TreeNode(2) root.right = TreeNode(4) root.right.left = TreeNode(3) root.right.right = TreeNode(5) traverse = ["R","R","U","L"] print(ob.solve(root, traverse))
输入
root = TreeNode(2) root.right = TreeNode(4) root.right.left = TreeNode(3) root.right.right = TreeNode(5) ["R","R","U","L"]
输出
3
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

