(每日一练28772)题目名称:分层遍历二叉树

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-05-15 09:15:32

给定一棵二叉树,节点定义如下: structNode { Node *pLeft; Node *pRight; int data; }; 要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。下面是一个例子:

输入一行字符串。1(2)表示2是1的子树。(1<=strlen(str)<=1000)

输出二叉树的层次。每层占一行。

输入
1(2(4,5(7,8)),3(6))

输出
1
2 3
4 5 6
7 8

好吧,C站这个考试环境,没有实现链表、树、图之类的算法,只能模拟了。行吧,用正则切割一下,就很简单的完成了

import re
s = input()
r = re.findall(r'\d+|[\(]|[\)]',s)
arr,lv = [],0
for i in r:
    if i == '(':
        lv += 1
        continue
    if i == ')':
        lv -= 1
        continue
    if len(arr) == lv:
        arr.append([])
    arr[lv].append(i)
for i in arr:
    print(*i)
...全文
108 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧