← 返回题库
初级

Invert a Binary Tree

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve(tree_str):
    arr = tree_str.split(",")
    n = len(arr)
    class Node:
        def __init__(self, v): self.v = v; self.l = self.r = None
    if not arr: return
    root = Node(arr[0])
    from collections import deque
    q = deque([root])
    i = 1
    while q and i < n:
        node = q.popleft()
        if i < n: node.l = Node(arr[i]); q.append(node.l); i += 1
        if i < n: node.r = Node(arr[i]); q.append(node.r); i += 1
    def invert(node):
        if not node: return
        node.l, node.r = node.r, node.l
        invert(node.l); invert(node.r)
    invert(root)
    q = deque([root])
    result = []
    while q:
        node = q.popleft()
        result.append(node.v)
        if node.l: q.append(node.l)
        if node.r: q.append(node.r)
    print(",".join(result))

示例

输入
4,2,7,1,3,6,9
期望输出
4,7,2,9,6,3,1
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码