刷题方法:树的遍历

Posted MISAYAONE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题方法:树的遍历相关的知识,希望对你有一定的参考价值。

树的遍历方式:就是指代根节点的位置

前序:根左右

中序:左根右

后序:左右根

总体上树的递归方法:就是调用自身

比如说获取二叉树的中序遍历结果

def pre_order(root):
    if root is None:
        return []
    return self.pre_order(root.left) + [root.val] + self.pre_order(root.right)

还有另外一种写法更像递归:

stack = []
def pre_order(root):
    if root is None:
        return
    self.pre_order(root.left)
    stack.append(root.val)
    self.pre_order(root.left)
        

其实就是根节点的数值什么时候放入到栈中。

涉及到非递归,其实还是用栈

比如中序遍历,先一直找到root节点的最左节点,此时栈的最结尾是最左的非空节点,那么按照中序,左根右的顺序,应该先放入当前节点(已经是最左了),然后放入当前节点的右节点。依次遍历:

def mid_order(ro

以上是关于刷题方法:树的遍历的主要内容,如果未能解决你的问题,请参考以下文章

java刷题--94二叉树的中序遍历

java刷题--94二叉树的中序遍历

java刷题--94二叉树的中序遍历

java刷题-144二叉树的前序遍历

java刷题--102二叉树的层序遍历

java刷题--590N叉树的后序遍历