2012-06-08 71 views

回答

0

你是對的:假設根節點至少有一個孩子。

在預先遍歷中,首先處理根節點。孩子追趕它。這很容易在僞代碼中看到:

preorder(node) 
    if node == null then return 
    print node.value 
    preorder(node.left) 
    preorder(node.right) 

在後序遍歷中,根節點是要處理的最後一個,而子節點是第一個;再次看代碼:

postorder(node) 
    if node == null then return 
    postorder(node.left) 
    postorder(node.right) 
    print node.value 

(從Wikipedia的僞代碼)。

總之,如果二叉樹有多個節點,遍歷必然是不同的。