美文网首页
非递归方式遍历二叉树

非递归方式遍历二叉树

作者: whynotybb | 来源:发表于2018-12-14 22:40 被阅读0次

    非递归方式访问二叉树,前序和中序的顺序一致,都是先访问完左子树,所以先是一个while循环,顺着左子树走完之后,再去访问根结点和右子树。还有一点是比较重要的,因为二叉树最多有两个子结点,所以在访问结点的右子结点之前,应该将根结点在栈中移除,要不然会陷入死循环。或者另一种方式就是记录访问完的结点。

    遍历二叉树有四种方式:前序遍历、中序遍历、后序遍历和层次遍历。

    非递归方式前序遍历二叉树:

    非递归中序遍历二叉树:应用1:二叉搜索树的最小第K个数,二叉搜索输的中序遍历是有序的。

    二叉树中序遍历循环方式代码

    后序遍历:最复杂

    后序遍历二叉树

    层次遍历:

    层次遍历二叉树

    详细源代码在https://github.com/whynotybb/alg_practice/tree/master/src/binarytree

    相关文章

      网友评论

          本文标题:非递归方式遍历二叉树

          本文链接:https://www.haomeiwen.com/subject/gnughqtx.html