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)

相关推荐

  • 仔细近义词,仔细的近义词是什么仔细的近义词

    技术仔细近义词,仔细的近义词是什么仔细的近义词“仔细”的近义词仔细近义词:细心、谨慎、周密、注意、认真一、细心[ xì xīn ]用心细密:~人。~照料。造句:1. 财会工作要特别细心,以免出现差错。2. 在妈妈的细心照

    生活 2021年10月20日
  • h2so3,初三必背的化学式有那些

    技术h2so3,初三必背的化学式有那些初中化学知识点摘要 一、基本概念h2so3:
    1、 化学变化:无新物质生成的变化。如:蒸发、挥发、溶解、潮解等。
    物理变化:有新物质生成的变化。如:燃烧、生锈、腐败、

    生活 2021年10月28日
  • 万事胜意什么意思,一如既往,万事胜意什么意思

    技术万事胜意什么意思,一如既往,万事胜意什么意思一如既往,万事胜意的意思:和从前一样,所有的事情都能有好的发展方向。一切都比自己所期待的,还要好一点点,一点点就够了。出自《你好,旧时光》。《你好,旧时光》主要讲述了主人公

    生活 2021年10月24日
  • ssh整合教程(ssh服务器是怎么搭建)

    技术如何整合SSH-DWR等技术这篇文章主要为大家展示了“如何整合SSH-DWR等技术”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何整合SSH-DWR等技术”这篇文章吧。

    攻略 2021年12月24日
  • 如何分析Linux PIE/堆栈内存损坏漏洞CVE-2017-1000253

    技术如何进行Linux PIE/stack 内存破坏漏洞CVE-2017-1000253分析本篇文章为大家展示了如何进行Linux PIE/stack 内存破坏漏洞CVE-2017-1000253分析,内容简明扼要并且容

    2021年12月21日
  • Java如何将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML

    技术Java如何将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML小编给大家分享一下Java如何将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML,相信大部分人都还不怎么了解,因此分享

    攻略 2021年11月24日