0094-leetcode算法实现之二叉树中序遍历-binary-tree-inorder-traversal-pythongolang实现

技术0094-leetcode算法实现之二叉树中序遍历-binary-tree-inorder-traversal-pythongolang实现 0094-leetcode算法实现之二叉树中序遍历-bi

0094-leetcode算法实现之二叉树中序遍历-二叉树-有序遍历-皮通戈朗实现

给定一个二叉树的根节点根,返回它的中序遍历。

示例1:

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

输出:[1,3,2]

示例2:

输入:root=[]

输出:[]

示例3:

输入:root=[1]

输出:[1]

示例4:

输入:root=[1,2]

输出:[2,1]

示例5:

输入:root=[1,null,2]

输出:[1,2]

提示:

树中节点数目在范围[0, 100] 内

-100=节点值=100

进阶:递归算法很简单,你可以通过迭代算法完成吗

来源:力扣(LeetCode)

链接:https://leet代码-cn。com/problems/二叉树-有序遍历

python

# 0094.二叉树中序遍历

# 递归迭代

类别解决方案:

def inoderrecury(self,head: TreeNode) - int:

'''

递归遍历,LNR,左根右

:参数标题:

:return:

'''

极好的遍历(头部):

# 递归终止条件

如果head==None:

返回

遍历(头向左)

打印(head.val ' ')

res.append(head.val)

遍历(头向右)

res=[]

遍历(头部)

返回资源

def inoderation(self,head: TreeNode):

'''

迭代遍历,LNR,左根右

:参数标题:

:return:

'''

如果head==None:

返回

曲面=头部

stack=[]

res=[]

当弯曲或堆叠时:

# 先迭代访问最底层的左子树节点

if cur:

堆栈。追加(当前)

cur=cur。左侧

# 到达最左节点后处理栈顶节点

else:

cur=stack.pop()

res.append(cur.val)

# 取栈顶元素的右节点

cur=cur。右

返回资源

golang

包装主体

导入"容器/列表"

//二叉树的中序遍历-递归迭代

//递归遍历

func inodertraversation(根*树节点)[]int {

//递归遍历,LNR,左根右

var res=[]int{}

var inoder func(节点*树节点)

inoder=func(node * TreeNode){ 0

如果节点==零

返回

}

节点。左)

res=追加(res,节点瓦尔)

节点。右)

}

无机(根)

返回资源

}

//迭代遍历LNR左中右左根右

func Inorder(root * TreeNode)[]int {

var res=[]int{}

if root==nil {

返回零

}

堆栈:=列表新()//创建链表容器

节点:=根

//1.先将所有的左节点找到,压入栈中

对于节点!=零

堆栈。推回(节点)

节点=节点。左边的

}

//2.对栈中的每个节点先弹出加入到表示留数中,再找到该节点的右节点的所有左节点加入栈中

对于堆栈.len(){ 0

e :堆栈。后退()

节点:=e.Value.(*TreeNode)

堆栈。删除(e)

//找到该节点的右节点,再搜索其所有的左节点加入栈中

res=追加(res,节点瓦尔)

节点=节点。对吧

对于节点!=零

堆栈。推回(节点)

节点=节点。左边的

}

}

返回资源

}

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

(0)

相关推荐

  • 端口扫描工具Pscan怎么用

    技术端口扫描工具Pscan怎么用这期内容当中小编将会给大家带来有关端口扫描工具Pscan怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天给大家介绍一款端口扫描工具Pscan一、

    2021年12月10日
  • UAVStack中的调用链是什么?

    技术UAVStack中的调用链是什么本篇内容主要讲解“UAVStack中的调用链是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“UAVStack中的调用链是什么”吧!前言

    攻略 2021年12月20日
  • Difference between pem, crt, key files

    技术Difference between pem, crt, key files Difference between pem, crt, key filesDifference between pem

    礼包 2021年12月9日
  • 如何理解Elasticsearch倒排索引与分词

    技术如何理解Elasticsearch倒排索引与分词本篇内容主要讲解“如何理解Elasticsearch倒排索引与分词”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解E

    攻略 2021年10月23日
  • vscode常用pythonexcel插件(vscode有没有pb插件)

    技术vscode+babel然后开发一个智能移除未使用变量的插件本篇文章给大家分享的是有关vscode+babel然后开发一个智能移除未使用变量的插件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有

    攻略 2021年12月22日
  • 最大公约数之和

    技术最大公约数之和 最大公约数之和本文主要讲一下最大公约数的和的推导过程(因为其太过经典,其实是博主老忘)。
    原式:
    \[\sum_{i = 1}^n\sum_{j = 1}^n\gcd(i, j)
    \

    礼包 2021年12月21日