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)

相关推荐

  • 拮据怎么读,请问“盥”怎么读

    技术拮据怎么读,请问“盥”怎么读一、盥的读音:guàn二、汉字释义:1、物体的周围部分,外缘拮据怎么读。 2、国家或地区交界处。 3、几何学上指夹成角或围成多角形的直线。 4、旁侧,近旁。 5、方面。 6、表示方位。 7

    生活 2021年10月21日
  • 多姿多彩是什么意思,我们的生活多姿多彩是什么意思

    技术多姿多彩是什么意思,我们的生活多姿多彩是什么意思我一直在问,怎么才能使自己变的更加有趣,反复求索,综合各方的意见,总结出了让自己更加有趣的秘方-过多姿多彩的生活多姿多彩是什么意思。首先心态,健康,乐观的积极心态是使自

    生活 2021年10月28日
  • 如何解决红杉离线备份的相关问题

    技术Sequoiadb backupOffline相关问题怎么解决这篇文章主要介绍“Sequoiadb backupOffline相关问题怎么解决”,在日常操作中,相信很多人在Sequoiadb backupOfflin

    攻略 2021年12月22日
  • 如何进行mysql的备份的分析

    技术如何进行mysql的备份的分析这篇文章将为大家详细讲解有关如何进行mysql的备份的分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在linux下的mysql在刚安

    攻略 2021年11月20日
  • JVM调优的几种策略分别是什么

    技术JVM调优的几种策略分别是什么这期内容当中小编将会给大家带来有关JVM调优的几种策略分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JVM参数调优是一个很头痛的问题,可能和

    攻略 2021年10月23日
  • 狗狗来大姨妈,母狗狗也会来“大姨妈”

    技术狗狗来大姨妈,母狗狗也会来“大姨妈”会滴,会滴,只要是母的狗,都会来红色朋友狗狗来大姨妈。嗯,红色朋友,就是大家指的大姨妈。母狗,在长到六七个月的时候就会来红色朋友。在狗狗的世界里,这叫做发情期啦!狗狗发情期一般是十

    生活 2021年10月29日