Skip to content

Commit 215f31a

Browse files
committed
修复使用 stack 遍历二叉树
1 parent 259556b commit 215f31a

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

docs/14_树与二叉树/btree.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,16 @@ def preorder_trav_use_stack(self, subtree):
7474
while not s.empty():
7575
peek = s.pop()
7676
print(peek.data) # 注意这里我用了 print,你可以用 yield 产出值然后在调用的地方转成 list
77-
if subtree.left:
78-
s.push(subtree.left)
79-
if subtree.right:
80-
s.push(subtree.right)
77+
if peek.right:
78+
s.push(peek.right)
79+
if peek.left:
80+
s.push(peek.left)
8181

8282
def inorder_trav(self, subtree):
8383
if subtree is not None:
84-
self.preorder_trav(subtree.left)
84+
self.inorder_trav(subtree.left)
8585
print(subtree.data)
86-
self.preorder_trav(subtree.right)
86+
self.inorder_trav(subtree.right)
8787

8888
def reverse(self, subtree):
8989
if subtree is not None:
@@ -133,8 +133,10 @@ def layer_trav_use_queue(self, subtree):
133133
btree = BinTree.build_from(node_list)
134134
print('====先序遍历=====')
135135
btree.preorder_trav(btree.root)
136+
136137
print('====使用 stack 实现先序遍历=====')
137-
btree.preorder_trav(btree.root)
138+
btree.preorder_trav_use_stack(btree.root)
139+
138140
print('====层序遍历=====')
139141
btree.layer_trav(btree.root)
140142
print('====用队列层序遍历=====')

0 commit comments

Comments
 (0)