二叉樹的前序、中序、后序遍歷 python


  話不多說,直接上代碼

class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class Solution: #前序
    def preorder(self,root,ans=[]): if root!=None: ans.append(root.val) if root.left: self.preorder(root.left,ans) if root.right: self.preorder(root.right,ans) return ans #中序
    def inorder(self,root,ans=[]): # if root.left==None and root.right==None:
        # ans.append(root.val)
        # return
        if root.left: self.inorder(root.left,ans) ans.append(root.val) if root.right: self.inorder(root.right,ans) return ans #后序
    def postorder(self,root,ans=[]): if root.left: self.postorder(root.left,ans) if root.right: self.postorder(root.right,ans) ans.append(root.val) return ans    

  童鞋們記得,不管是編寫還是利用前序、中序、后序遍歷,記得在根節點順序的位置搞事情。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM