前序遍历:
class Solution:
def preorderTraversal(self, root: TreeNode) -> List[int]:
result=[]
st=[]
if root:
st.append(root)
while st:
node=st.pop()
if node != None:
if node.right:
st.append(node.right)
if node.left:
st.append(node.left)
st.append(node)
st.append(None)
else:
node=st.pop()
result.append(node.val)
return result
中序遍历:
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
result=[]
st=[]
if root:
st.append(root)
while st:
node=st.pop()
if node != None:
if node.right:
st.append(node.right)
st.append(node)
st.append(None)
if node.left:
st.append(node.left)
else:
node=st.pop()
result.append(node.val)
return result
后序遍历:
class Solution:
def postorderTraversal(self,root:TreeNode) ->List[int]:
result=[]
st=[]
if root:
st.append(root)
while st:
node=st.pop()
if node != None:
st.append(node)
st.append(None)
if node.right:
st.append(node.right)
if node.left:
st.append(node.left)
else:
node=st.pop()
result.append(node.val)
return result