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)

相关推荐

  • pythondate函数用法(pythonannotate函数如何注释点)

    技术Python中missing()函数怎么使用这篇文章主要介绍“Python中missing()函数怎么使用”,在日常操作中,相信很多人在Python中missing()函数怎么使用问题上存在疑惑,小编查阅了各式资料,

    攻略 2021年12月23日
  • oracle归档日志流式分析(oracle执行语句分析)

    技术Oracle查询脚本的示例分析这篇文章将为大家详细讲解有关Oracle查询脚本的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 --查询回滚段信

    攻略 2021年12月20日
  • prometheus SQL汇总

    技术prometheus SQL汇总 prometheus SQL汇总由于自己写一些prometheus sql告警规则会比较耗时,所以这里从腾讯云的云原生监控和prometheus operator中

    礼包 2021年11月22日
  • VB.NET文件操作语法有哪些

    技术VB.NET文件操作语法有哪些这篇文章主要介绍VB.NET文件操作语法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.拷贝文件(FileCopy语句)格式:FileCopy(源文件名)

    攻略 2021年12月2日
  • 体表面积计算公式,人体体表面积的计算公式是什么

    技术体表面积计算公式,人体体表面积的计算公式是什么(一)计算人体表面积的公式较多,但大多数可写成(1)或(2)的形式.SA=cHα1Wα2
    (1) 这里SA为人体表面积(m2);H为身高(cm);W为体重(kg);c,α

    生活 2021年10月27日
  • 如何分析同一台机器上DataGuard的密码问题

    技术如何分析同一台机器上DataGuard的密码问题今天就跟大家聊聊有关如何分析同一台机器上DataGuard的密码问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收

    攻略 2021年11月30日