写在最前面的话:
其实相当于一篇链接整理文(网上直接搜多二叉树构建和遍历各种答案有点乱…)
二叉树的构建
只想掌握一种二叉树构建方式的话还是推荐第三种,利用队列完成层次二叉树建立
先掌握完全二叉树的建立理解,再进一步掌握一般二叉树
列表构建二叉树1
代码参考 https://blog.csdn.net/lznsay/article/details/78710257
递归方式实现创建
输入需满足完全二叉树按层次建立
其中利用了完全二叉树的特性(根节点为i的话,左子节点为2i+1,右子节点为2i+2)
class node():
def __init__(self, k=None, l=None, r=None):
self.val = k
self.left = l
self.right = r
def listcreattree(root,llist,i):
#用列表递归创建二叉树,
#它其实创建过程也是从根开始a开始,创左子树b,再创b的左子树,如果b的左子树为空,返回none。
再接着创建b的右子树,
if i<len(llist):
if llist[i] =='#':
return None ###这里的retu