103. Binary Tree Zigzag Level Order Traversal
S1:
class Solution:
def zigzagLevelOrder(self
, root
: TreeNode
) -> List
[List
[int]]:
if not root
:
return None
res
, restmp
= [], []
stack0
, stack1
= [root
], []
flag
= True
while stack0
:
tmp
= stack0
.pop
()
restmp
.append
(tmp
.val
)
if flag
:
if tmp
.left
:
stack1
.append
(tmp
.left
)
if tmp
.right
:
stack1
.append
(tmp
.right
)
else:
if tmp
.right
:
stack1
.append
(tmp
.right
)
if tmp
.left
:
stack1
.append
(tmp
.left
)
if not stack0
:
stack0
= stack1
[:]
stack1
.clear
()
flag
= not flag
res
.append
(restmp
[:])
restmp
.clear
()
return res
S2:
class Solution:
def zigzagLevelOrder(self
, root
: TreeNode
) -> List
[List
[int]]:
if not root
:
return None
res
, restmp
= [], []
stack0
, stack1
= [root
], []
flag
= True
while stack0
:
for tmp
in stack0
:
restmp
.append
(tmp
.val
)
if tmp
.left
:
stack1
.append
(tmp
.left
)
if tmp
.right
:
stack1
.append
(tmp
.right
)
stack0
= stack1
[:]
stack1
.clear
()
if not flag
:
restmp
.reverse
()
flag
= not flag
res
.append
(restmp
[:])
restmp
.clear
()
return res
转载请注明原文地址: https://lol.8miu.com/read-7603.html