二叉树预订和邮政订单遍历完全相同?

时间:2012-06-08 18:36:31

标签: binary-tree traversal postorder preorder

是否存在这种情况属实的二叉树?

我不这么认为,除非二叉树只包含一个根节点。

1 个答案:

答案 0 :(得分: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的伪代码)。

总之,如果二叉树有多个节点,则遍历必然不同。