class TreeNode:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 递归、层序、列表转二叉树
def __str__(self):
return str(self.val)
#使用递归将列表转换二叉树
def list2treeNode(lst):
def level(index):
if index >= len(lst) or lst[index] is None:
return None
root = TreeNode(lst[index])
root.left = level(index * 2 + 1)
root.right = level(index * 2 + 2)
return root
return level(0)
#使用迭代法层序遍历,将列表转换维二叉树
def list2treeNode1(lst):
if not lst:
return None
root = TreeNode(lst[0])
que = [root]
index = 1
while que:
cur = que.pop(0)
if index < len(lst) and lst[index] is not None:
cur.left = TreeNode(lst[index])
que.append(cur.left)
index += 1
if index < len(lst) and lst[index] is not None:
cur.right = TreeNode(lst[index])
que.append(cur.right)
index += 1
return root
列表、二叉树、层序遍历
最新推荐文章于 2024-07-30 17:23:09 发布