遍历二叉树小结

来源:互联网 发布:sql left join on 编辑:程序博客网 时间:2024/06/11 21:28

二叉树将其分为根(B,base),左子树(L,left),右子树(R,right)表示。则遍历树就是遍历B,L和R的过程,对3个组件进行排列,实际有3*2*1=6种。

DLR,LDR,LRD

RLD,RDL,DRL

其本质类似。

默认情况,将L和R的顺序确定下来,先L后R。则只剩下3种常说的,先根,中根,后根。


递归的思路:递归就是自己调用自己,用同样办法解决子问题。

如先根遍历。对于每一个子树,都要先访问根,在递归访问访问左子树(根(根左右),左,右),递归访问右子树。

preorder(root r)

{

 if(r==null)//非法情况,同时也是返回条件

return

else

{

print(r)

preorder(r.left)

preorder(r.right)

}

}


中根和后根就是把上面的print放在中间或后面。


层序遍历是利用队列保存每个节点及其左右孩子的。不再赘述。

0 0