LeetCode解题思路--树

144. Binary Tree Preorder Traversal

因为要求不能用递归:

def preorder(tree):
    if tree:
        print(tree.getRootVal())
        preorder(tree.getLeftChild())
        preorder(tree.getRightChild())

按照前序遍历树的节点的顺序(逐级往下读左边节点,然后逐级网上返回读右边节点),想到用栈。

  • 1 随机画出一个一般的树,然后研究节点入栈的顺序和出栈的操作
  • 2 按照先读左边的,就一路读下去,读到叶节点后开始出栈,对每一个出栈的节点,判断是否有右节点,若有,就接着读,接着入栈,没有就继续往上返回出栈
  • 3 直到栈内为空,停止循环
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 做题,实际写出例子,然后分析可能遇到的情况,慢慢的,思路就会出来了。 线性表 33. Search in Rota...
    小碧小琳阅读 5,530评论 0 2
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,268评论 2 36
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,363评论 0 33
  • 树相关题目套路: 先序中序后序DFS其他遍历方式(如右左根)层序遍历 144. Binary Tree Preor...
    superlj666阅读 2,472评论 0 0
  • 前言:如果你维护老项目,项目里面的那些臃肿的控制印象应该很深吧。在原来上千行代码里修改,新加代码那感觉简直了。😄,...
    纸简书生阅读 7,429评论 3 20

友情链接更多精彩内容