初级
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))
示例
输入
solve('4,2,7,1,3,6,9')
期望输出
4,7,2,9,6,3,1
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199