LeetCode基础--二叉树--前序遍历
来源:互联网 发布:手机淘宝评价管理截图 编辑:程序博客网 时间:2024/05/22 18:39
前序: 根->左->右
递归实现:
public class Solution { public IList<int> PreorderTraversal(TreeNode root) { List<int> result = new List<int>(); if (root != null){ result.Add(root.val); result.AddRange(PreorderTraversal(root.left)); result.AddRange(PreorderTraversal(root.right)); } return result; }}
非递归实现:
- 创建一个栈,把 root 结点入栈。
- 栈不为空时就执行下面的流程。
2.1. 从栈中弹出一个元素,并输出这个元素。
2.2. 把弹出元素的右子结点入栈。
2.3. 把弹出元素的左子结点入栈。
public class Solution { public IList<int> PreorderTraversal(TreeNode root) { List<int> result = new List<int>(); if(root == null) { return result; } Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode runNode = root; while(stack.Count > 0 || runNode != null) { if(runNode != null) { stack.Push(runNode); result.Add(runNode.val); runNode = runNode.left; } else { runNode = stack.Peek(); stack.Pop(); runNode = runNode.right; } } return result; }}
阅读全文
0 0
- LeetCode基础--二叉树--前序遍历
- LeetCode基础--二叉树--后序遍历
- LeetCode基础--二叉树--中序遍历
- leetcode刷题7:前序遍历二叉树
- LeetCode之二叉树的前序遍历
- 前序遍历二叉树
- 二叉树-前序遍历
- 前序遍历二叉树
- leetcode | 二叉树的前序遍历、中序遍历、后续遍历的非递归实现
- 前序遍历遍历二叉树
- 二叉树遍历前序遍历
- LeetCode基础--二叉树--层次遍历
- LeetCode基础--二叉树--ZigZag遍历
- LeetCode之通过二叉树的中序遍历和前序遍历来还原二叉树
- java二叉树的前序遍历
- 非递归前序遍历二叉树
- 类似前序遍历 建立二叉树
- 二叉树遍历算法,前序
- Redis的单机安装和5中数据结构的常用命令
- arcgis 字段计算器 python方法
- python基础:语法,数据类型和运算符
- Eclipse:An internal error occurred during: "Initializing Java Tooling"
- button 提交后再次刷新页面
- LeetCode基础--二叉树--前序遍历
- AOP和IoC实现原理【用到的设计模式】
- 屏幕增强实例二(BOM Header)
- springboot整合jpa
- 机器学习之中文处理:文言文还是白话文
- Junit Assert.assertEquals中的delta用法
- Disqus On Jekyll 之翻内篇
- react系列(5)组件内部方法和静态方法
- 【教程】PDF组件Spire.PDF 教程:在C#中显示PDF文件的打印预览