【华为机试真题 Python】二叉树中序遍历

题目描述

根据给定的二叉树结构描述字符串,输出该二叉树按照中序遍历结果字符串。中序遍历顺序为:左子树,根结点,右子树。

输入描述

  • 由大小写字母、左右大括号、逗号组成的字符串:字母代表一个节点值,左右括号内包含该节点的子节点。

    左右子节点使用逗号分隔,逗号前为空则表示左子节点为空,没有逗号则表示右子节点为空。

    二叉树节点数最大不超过100。

    注:输入字符串格式是正确的,无需考虑格式错误的情况。

输出描述

输出一个字符串为二叉树中序遍历各节点值的拼接结果。

参考示例

示例1

输入

a{b{d,e{g,h{,i}}},c{f}}


输出    

dbgehiafc


参考代码

# 输入获取
s = input()
 
 
# 算法入口
def getResult(s):
    idxs = []
    stack = []
 
    for i in range(len(s)):
        c = s[i]
 
        if c == '}':
            idx = idxs.pop()  # 左括号索引
            root = stack[idx - 1]  # 根
 
            left, right = "", ""
            tmp = "".join(stack[(idx + 1):]).split(",")
      

猜你喜欢

转载自blog.csdn.net/forest_long/article/details/134938050