Fix Python code.

This commit is contained in:
krahets
2023-10-14 21:54:47 +08:00
parent a8c624fa5a
commit 2976d9ff56
10 changed files with 174 additions and 170 deletions

View File

@ -15,18 +15,18 @@ class ArrayBinaryTree:
def __init__(self, arr: list[int | None]):
"""构造方法"""
self.__tree = list(arr)
self._tree = list(arr)
def size(self):
"""节点数量"""
return len(self.__tree)
return len(self._tree)
def val(self, i: int) -> int:
"""获取索引为 i 节点的值"""
# 若索引越界,则返回 None ,代表空位
if i < 0 or i >= self.size():
return None
return self.__tree[i]
return self._tree[i]
def left(self, i: int) -> int | None:
"""获取索引为 i 节点的左子节点的索引"""
@ -49,18 +49,18 @@ class ArrayBinaryTree:
self.res.append(self.val(i))
return self.res
def __dfs(self, i: int, order: str):
def dfs(self, i: int, order: str):
"""深度优先遍历"""
if self.val(i) is None:
return
# 前序遍历
if order == "pre":
self.res.append(self.val(i))
self.__dfs(self.left(i), order)
self.dfs(self.left(i), order)
# 中序遍历
if order == "in":
self.res.append(self.val(i))
self.__dfs(self.right(i), order)
self.dfs(self.right(i), order)
# 后序遍历
if order == "post":
self.res.append(self.val(i))
@ -68,19 +68,19 @@ class ArrayBinaryTree:
def pre_order(self) -> list[int]:
"""前序遍历"""
self.res = []
self.__dfs(0, order="pre")
self.dfs(0, order="pre")
return self.res
def in_order(self) -> list[int]:
"""中序遍历"""
self.res = []
self.__dfs(0, order="in")
self.dfs(0, order="in")
return self.res
def post_order(self) -> list[int]:
"""后序遍历"""
self.res = []
self.__dfs(0, order="post")
self.dfs(0, order="post")
return self.res