1. 程式人生 > 實用技巧 >二叉樹的遍歷(python)

二叉樹的遍歷(python)

BEGIN:

class TreeNode:
    '''
    樹節點
    '''
    def __init__(self,x):
        self.val = x
        self.left = None
        self.right = None

def preTraversal(head):
    '''
    先根遍歷
    :param head: 
    :return: 
    '''
    if not head:
        return
    print(head.val)
    preTraversal(head.left)
    preTraversal(head.right)

def midTraversal(head): ''' 中跟遍歷 :param head: :return: ''' if not head: return midTraversal(head.left) print(head.val) midTraversal(head.right) def postTraversal(head): ''' 後根遍歷 :param head: :return: ''' if not head: return
postTraversal(head.left) postTraversal(head.right) print(head.val) """ 樹結構: A B C D E F G 先跟遍歷:ABDECFG 中跟遍歷:DBEAFCG 後根遍歷:DEBFGCA """ A, B, C, D, E, F, G, H, I, J, K, L ,M ,N
= [TreeNode(x) for x in 'abcdefghijklmn'] A.left = B A.right = C B.left = D B.right = E C.left = F C.right = G head = A print("preTraversal>>>") preTraversal(head) print("midTraversal>>>") midTraversal(head) print("postTraversal>>>") postTraversal(head)

END.