- 博客(4)
- 收藏
- 关注
原创 Iterative Postorder Traversals of Binary Tree
二叉树非递归后序遍历 1. Using 1 stack O(n) time, O(n) space 初始设置栈为空,当前节点为根节点 执行以下操作,直到栈为空且当前节点为空时停止: 当前节点入栈,将左孩子设为当前节点,直到当前节点为空。 令当前节点为stack[-1] 如果当前节点右孩子为空,或等于prev(说明已经访问过右子树) – 访问当前节点,出栈 – 设置prev=当前节点 – 令当前节点=None 否则,将右孩子设为当前节点 stack = [] node = root while node
2021-09-25 19:56:10
219
原创 Iterative Inorder Traversals of Binary Tree
二叉树非递归中序遍历 非递归中序遍历的三种写法和前序遍历(见前一篇)非常相似,区别在于访问根节点的时间不同。注意,前序遍历的方法1.2无法使用。 1. Using 1 stack O(n) time, O(n) space 初始设置栈为空,当前节点为根节点 执行以下操作: 当前节点入栈,将左子节点设为当前节点,直到当前节点为空。 弹出栈顶并访问,将当前节点设置为弹出节点的右子节点。 直到栈为空且当前节点为空时停止 stack = [] node = root while stack or node:
2021-09-24 04:44:03
190
原创 Iterative Preorder Traversals of Binary Tree
Iterative preorder traversals of binary tree 最近重新学习DFS,觉得是时候把前序中序后序遍历的非递归写法整理一下了。。 1. Using 1 stack O(n) time, O(n) space 方法1.1: 初始设置栈为空 执行以下操作: 从根节点开始执行访问并入栈,下一个访问的节点是当前节点的左子节点,直到当前节点为空。 弹出栈顶,将当前节点设置为弹出节点的右子节点。 直到栈为空且当前节点为空时停止 stack = [] node = root whi
2021-09-23 14:45:02
164
原创 LeetCode 225. Implement Stack using Queues, 232. Implement Queue using Stacks
225. Implement Stack using Queues, 232. Implement Queue using StacksImplement Queue using StacksImplement Stack using Queues Implement Queue using Stacks 有一步优化:每次弹出时,如果stack2空,把stack1中的其他元素倒到stack2中;s...
2019-07-05 22:38:11
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅