Leetcode
文章平均质量分 83
wjykst
这个作者很懒,什么都没留下…
展开
-
Iterative Postorder Traversals of Binary Tree
二叉树非递归后序遍历1. Using 1 stackO(n) time, O(n) space初始设置栈为空,当前节点为根节点执行以下操作,直到栈为空且当前节点为空时停止:当前节点入栈,将左孩子设为当前节点,直到当前节点为空。令当前节点为stack[-1]如果当前节点右孩子为空,或等于prev(说明已经访问过右子树)– 访问当前节点,出栈– 设置prev=当前节点– 令当前节点=None否则,将右孩子设为当前节点stack = []node = rootwhile node原创 2021-09-25 19:56:10 · 139 阅读 · 0 评论 -
Iterative Inorder Traversals of Binary Tree
二叉树非递归中序遍历非递归中序遍历的三种写法和前序遍历(见前一篇)非常相似,区别在于访问根节点的时间不同。注意,前序遍历的方法1.2无法使用。1. Using 1 stackO(n) time, O(n) space初始设置栈为空,当前节点为根节点执行以下操作:当前节点入栈,将左子节点设为当前节点,直到当前节点为空。弹出栈顶并访问,将当前节点设置为弹出节点的右子节点。直到栈为空且当前节点为空时停止stack = []node = rootwhile stack or node:原创 2021-09-24 04:44:03 · 130 阅读 · 0 评论 -
Iterative Preorder Traversals of Binary Tree
Iterative preorder traversals of binary tree最近重新学习DFS,觉得是时候把前序中序后序遍历的非递归写法整理一下了。。1. Using 1 stackO(n) time, O(n) space方法1.1:初始设置栈为空执行以下操作:从根节点开始执行访问并入栈,下一个访问的节点是当前节点的左子节点,直到当前节点为空。弹出栈顶,将当前节点设置为弹出节点的右子节点。直到栈为空且当前节点为空时停止stack = []node = rootwhi原创 2021-09-23 14:45:02 · 115 阅读 · 0 评论 -
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 QueuesImplement Queue using Stacks有一步优化:每次弹出时,如果stack2空,把stack1中的其他元素倒到stack2中;s...原创 2019-07-05 22:38:11 · 186 阅读 · 0 评论