笔试算法题-day01

题目:给定一棵完全二叉树的层次遍历序列,以及树的结点数目,求解其先序遍历序列?
样例:输入为:ABCDE,5;输出:ABDEC
解题思路:主要考察了完全二叉树的特性(也即父节点与其儿子结点存在一个关系node_left=2*root+1,node_right=2*root+2),因此这里可以采用递归的解法;
def preorder(level_search,idx,n,preorder_list):
    if idx>n:
        return 
    else:
        preorder_list.append(level_search[idx])
        if 2*idx+1<n:
                preorder(level_search,2*idx+1,n,preorder_list)
        if 2*idx+2<n:
                preorder(level_search,2*idx+2,n,preorder_list)
if __name__=="__main__":
    input_="ABCDEF"
    n=len(input_)
    res=[]
    preorder(input_,0,n,res)
    print("".join(res))
        
考察知识点:完全二叉树的一些知识点,以及层次遍历(从上至下,从左至右);
全部评论
浅浅记录一下,就一道算法题,ac100%
点赞 回复 分享
发布于 2023-09-09 20:53 北京

相关推荐

头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务