二叉树的遍历
二叉树遍历的经典方法有四种,前序遍历、中序遍历、后序遍历和层次遍历。
其中,前、中、后序,表示的是节点与它的左右子树节点遍历打印的先后顺序。
前序遍历是指,对于树中的任意节点来说,先打印这个节点,然后再打印它的左子树,最后打印它的右子树。
中序遍历是指,对于树中的任意节点来说,先打印它的左子树,然后再打印它本身,最后打印它的右子树。
后序遍历是指,对于树中的任意节点来说,先打印它的左子树,然后再打印它的右子树,最后打印这个节点本身。
前中后序是DFS(深度优先算法)的思想
实际上,二叉树的前、中、后序遍历就是一个递归的过程。
前序遍历,其实就是先打印根节点,然后再递归地打印左子树,最后递归地打印右子树。
前序遍历的递推公式:
preOrder(r) = print r->preOrder(r.left)->preOrder(r.right)
中序遍历的递推公式:
inOrder(r) = inOrder(r.left)->print r->inOrder(r.right)
后序遍历的递推公式:
postOrder(r) = postOrder(r.left)->postOrder(r.right)->print r