Python实现二叉树的非递归先序遍历
思路:
1. 使用列表保存结果;
2. 使用栈(列表实现)存储结点;
3. 当根结点存在,保存结果,根结点入栈;
4. 将根结点指向左子树;
5. 根结点不存在,栈顶元素出栈,并将根结点指向栈顶元素的右子树;
6. 重复步骤3-6,直到栈空。
LeetCode: 144. Binary Tree Preorder Traversal
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = Noneclass Solution(object):def preorderTraversal(self, root):""":type root: TreeNode:rtype: List[int]"""ret = []stack = []while root or stack:while root:ret.append(root.val)stack.append(root)root = root.leftif stack:t = stack.pop()root = t.rightreturn ret
转载于:https://www.cnblogs.com/qiaojushuang/p/7862930.html
Python实现二叉树的非递归先序遍历相关推荐
- 非递归前序遍历二叉树,非递归中序遍历二叉树,非递归后续遍历二叉树
import java.util.Stack;public class Front {//非递归前序遍历public void front(TreeNode node) {Stack<TreeN ...
- 二叉树的非递归后序遍历(双栈法和双指针法,有图有真相)
一,前言 本文是原创作品,可能存在不足,欢迎大家指正,礼貌交流,感激不尽. 二,思路 二叉树后序遍历不同于前序遍历和中序遍历,后序遍历是三者之间最难的.下面就让我们来梳理一下代码的逻辑,看看如何轻松地 ...
- LeetCode:二叉树的非递归中序遍历
第一次动手写二叉树的,有点小激动,64行的if花了点时间,上传leetcode一次点亮~~~ 1 /* inorder traversal binary tree */ 2 #include < ...
- 二叉树非递归先序遍历
二叉树的递归先序遍历很简单,假设二叉树的结点定义如下: 1 struct BinaryTreeNode 2 { 3 int m_nValue; 4 BinaryTreeNode* m_pLeft; 5 ...
- 二叉树路径应用举例(基于非递归后序遍历)
#include "stdafx.h" #include <iostream> #include <fstream>using namespace std; ...
- 二叉树非递归后序遍历算法的一种简单思路
首先从简单的例子开始 1 2 3 上图二叉树的后序遍历序列是"231", 颠倒一下就是"132", 而其前序遍历是"123" 有什么发现? ...
- 数据结构之---非递归中序遍历二叉树
二叉树中序非递归遍历算法实现 大家好,我是逝去的粒子,从今天起,我将尝试着数据结构从0开始学习分享,此篇文章作为试验,一方面可以为自己做笔记防止遗忘,另一方面希望可以帮助大家.不废话,正式开始. 1. ...
- 二叉树非递归后序遍历算法(C语言)
二叉树非递归后序遍历算法(C语言) 二叉树后序遍历的规律:左右根 后序非递归遍历中,访问根(子根)结点有两种情况 ①:遍历完左子树,需要遍历右子树,需要从栈中访问最顶上的根(子根)结点从而得到右子树的 ...
- 非递归先序遍历二叉树总结(3种方法)
算法 非递归先序遍历二叉树总结(3种方法) @author:Jingdai @date:2020.12.03 传送门 非递归中序遍历二叉树 非递归后序遍历二叉树 递归先序遍历二叉树非常的简单,但是面试 ...
最新文章
- 面向对象三大特性一一封装(encapsulation)
- 解决yum 不能更新问题 :yum 报错Loaded plugins: fastestmirror, refresh-packagekit, security
- Python数据类型中的字典-创建和基本操作
- centos snmp配置_如何在CentOS系统中安装配置SNMP服务
- MySQL同表关联的id替换名称_MySQL JOIN用另一个表中的值替换ID
- 2021-05-19 Schur补引理及证明
- golang中的go mod开发
- 我的Thinkpad T410最近老是出Fan error
- 10G_Ethernet_04 10G Ethernet Subsystem IP 的快速验证(万兆以太网IP的快速验证)
- 10.15 lzxkj
- 创建 Oracle 物理备用服务器
- E/Trace: error opening trace file: No such file or directory
- HDU2151 Worm【DP】
- 用ajax向处理页面传送路径问题解决方法
- 基于词典和弱标注信息的电影评论情感分析系统
- 微信小程序添加字体图标
- java web对cpu要求_java web服务器cpu占用过高的处理
- mbr分区磁盘如何转换成gpt分区磁盘?
- c语言编程照抄能学好吗,电子信息类专业学生必看:一位老电子工程师十年感悟...
- 地对地导弹地对地导弹
热门文章
- Annotation之二:@Inherited注解继承情况
- WPF简单的口算案例
- Sql Server 2005如何设置连接加密
- [原创]我的作品:我的迷宫小游戏Java版本
- 遨游3.0 RC 版公布
- WQL Analyzer V1.1(WMI查询分析器)
- hive清空外表数据
- Flink SQL Client方言切换与datagen->Hive(DDL形式+streaming形式)
- ubuntu20.04运行海商王2
- 大数据发行版本+组件中的竞品/等同地位关系(持续更新中)