You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现buildTree方法从含'N'的父数组构建二叉树

层序构造含空节点二叉树的Python实现

以下代码完全对齐提供的C++实现逻辑,支持输入空格分隔的节点值字符串,N代表空节点,返回构造完成的二叉树根节点:

1. 二叉树节点定义

class Node:
    def __init__(self, val):
        self.data = val
        self.left = None
        self.right = None

2. 层序构造二叉树实现

from collections import deque

def buildTree(s: str):
    # 边界情况处理:空字符串或根节点为空直接返回
    if not s or s[0] == 'N':
        return None
    
    # 按空格拆分输入字符串得到节点值列表
    ip = s.split()
    
    # 初始化根节点并入队
    root = Node(int(ip[0]))
    queue = deque([root])
    
    i = 1
    while queue and i < len(ip):
        curr_node = queue.popleft()
        curr_val = ip[i]
        
        # 构造左子节点
        if curr_val != 'N':
            curr_node.left = Node(int(curr_val))
            queue.append(curr_node.left)
        
        i += 1
        if i >= len(ip):
            break
        curr_val = ip[i]
        
        # 构造右子节点
        if curr_val != 'N':
            curr_node.right = Node(int(curr_val))
            queue.append(curr_node.right)
        
        i += 1
    return root

使用示例

输入字符串 "3 9 20 N N 15 7" 即可构造对应二叉树,逻辑与C++版本完全一致。

内容的提问来源于stack exchange,提问作者Rajdeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:06:07