python中如何倒序遍历列表(python数组中序遍历)

技术怎样返回的python中序遍历这期内容当中小编将会给大家带来有关怎样返回的python中序遍历,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。【题目】给定一个二叉树,返回它的中序 遍

本期,边肖将为您带来关于如何返回的python中间顺序遍历。文章内容丰富,从专业角度进行分析和描述。希望你看完这篇文章能有所收获。

【标题】

给定一棵二叉树,返回它的顺序遍历。

示例:

输入:[1,null,2,3]

一个

\

2

/

输出:[1,3,2]

高级:递归算法非常简单。可以通过迭代算法做到吗?

[思考]

前序遍历、中序遍历和后序遍历。这三种遍历方式中,前、中、后是指根节点的顺序,都是先遍历左子树,再遍历右子树。

中序遍历的递归解法:先递归遍历左子树,然后访问当前节点的值,最后递归遍历右子树。

中序遍历的非递归解:使用两个栈,一个栈(栈1)存储节点,另一个栈(栈2)存储访问标签。要实现从左根到右根的顺序,需要先插入右节点,再插入根节点,最后插入左节点。步骤如下:如果堆栈1的顶部节点未被访问,弹出节点,将右边的子节点(如果有)添加到堆栈中,将节点添加到堆栈中,最后将左边的子节点(如果有)添加到堆栈中;同时,栈2添加了是否被访问的相应标签。

[代码]

python版本

递归解

# Definitionforabinarytreenode。

#classTreeNode:

#def__init__(self,val=0,left=None,right=None):

#self.val=val

#self.left=left

#自我.正确=正确

类别解决方案:

deftraverse(自我,节点):

ifnotnode:

返回

#左根右

self.traverse(节点. left)

self.res.append(node.val)

self.traverse(节点. right)

定义顺序遍历(自身,根:重新编码)-列表[int]:

self.res=[]

self.traverse(根)

returnself.res

非递归解

分类解决方案:纳米

p; 
    def inorderTraversal(self, root: TreeNode) -> List[int]:
        '''非递归遍历'''
        if not root:
            return []
        stack = [root]
        visit = [0]
        res = []
        while len(stack) > 0:
            # 已经遍历过,将val放到res中
            if visit[-1] == 1:
                res.append(stack.pop().val)
                visit.pop()
            # 未遍历过,则遍历左右节点(由于是栈,先保存右节点,再保存左节点)    
            else:
                node = stack.pop()
                visit_i = visit.pop()
                if node.right:
                    stack.append(node.right)
                    visit.append(0)
                stack.append(node)
                visit.append(1)
                if node.left:
                    stack.append(node.left)
                    visit.append(0)
                
        return res

上述就是小编为大家分享的怎样返回的python中序遍历了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/144271.html

(0)

相关推荐

  • Redis的QPS浮动是多少

    技术Redis的QPS浮动是多少本篇内容主要讲解“Redis的QPS浮动是多少”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis的QPS浮动是多少”吧!测试环境配置Ub

    攻略 2021年12月3日
  • 抖音刷直播人气,抖音直播刷人气详情介绍!

    技术抖音刷直播人气,抖音直播刷人气详情介绍!抖音直播人气购买,抖音直播刷人气软件,抖音直播刷人气,如果在直播间涨粉,前提要做如何做到直播间有人进来
    靠排比例的话数能上1000人在线,一个月稳定卖一百万一直靠砍光的和热量很

    测评 2021年10月21日
  • 刘羽冲偶得古兵书翻译,刘羽冲偶得古兵书 赏析

    技术刘羽冲偶得古兵书翻译,刘羽冲偶得古兵书 赏析看看刘羽冲的表现:他偶然得过一部古兵书,苦读了一年左右,自己感觉可以统领十万军兵冲锋陷阵了刘羽冲偶得古兵书翻译。正巧当时乡里出现土匪,刘羽冲就自己训练乡兵与土匪们打仗,

    生活 2021年10月29日
  • Oracle Study在AIX环境下如何构建主机信任关系

    技术Oracle Study在AIX环境下如何构建主机信任关系这篇文章主要介绍Oracle Study在AIX环境下如何构建主机信任关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在AIX环境下

    攻略 2021年11月24日
  • SQL Server日期函数CAST和CONVERT以及在业务中的使用是怎样的

    技术SQL Server日期函数CAST和CONVERT以及在业务中的使用是怎样的SQL Server日期函数CAST和CONVERT以及在业务中的使用是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编

    攻略 2021年12月1日
  • 盘点服装设计所经常性使用的软件-----ET,中篇)

    技术盘点服装设计所经常性使用的软件-----ET,中篇) 盘点服装设计所经常性使用的软件-----ET(中篇)大家好,我是IT共享者,人称皮皮。
    前言
    今天要跟大家介绍的是关于服装设计所经常性使用的软件

    礼包 2021年11月1日