修改 list_to_tree(arr) 避免列表越界的错误
This commit is contained in:
parent
8733557f00
commit
fc33af7d4d
@ -18,24 +18,30 @@ def list_to_tree(arr):
|
|||||||
"""Generate a binary tree with a list
|
"""Generate a binary tree with a list
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
arr ([type]): [description]
|
arr (list): a list representing a binary tree, where None represents an empty node
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
[type]: [description]
|
TreeNode: the root node of the generated binary tree
|
||||||
"""
|
"""
|
||||||
if not arr:
|
if not arr:
|
||||||
return None
|
return None
|
||||||
|
if len(arr) < 2:
|
||||||
|
return TreeNode(arr[0])
|
||||||
i = 1
|
i = 1
|
||||||
root = TreeNode(int(arr[0]))
|
root = TreeNode(int(arr[0]))
|
||||||
queue = collections.deque()
|
queue = collections.deque()
|
||||||
queue.append(root)
|
queue.append(root)
|
||||||
while queue:
|
while queue:
|
||||||
node = queue.popleft()
|
node = queue.popleft()
|
||||||
if arr[i] != None:
|
if i >= len(arr):
|
||||||
|
break
|
||||||
|
if arr[i] is not None:
|
||||||
node.left = TreeNode(int(arr[i]))
|
node.left = TreeNode(int(arr[i]))
|
||||||
queue.append(node.left)
|
queue.append(node.left)
|
||||||
i += 1
|
i += 1
|
||||||
if arr[i] != None:
|
if i >= len(arr):
|
||||||
|
break
|
||||||
|
if arr[i] is not None:
|
||||||
node.right = TreeNode(int(arr[i]))
|
node.right = TreeNode(int(arr[i]))
|
||||||
queue.append(node.right)
|
queue.append(node.right)
|
||||||
i += 1
|
i += 1
|
||||||
|
Loading…
Reference in New Issue
Block a user