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