首页 > 编程知识 正文

二叉树遍历前中后例题,二叉树遍历例题解析

时间:2023-05-04 11:22:30 阅读:34411 作者:2456

题目:

给出二叉树的根节点root,并返回其中顺序扫描。

示例 1:

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

输出: [ 1,3,2 ]

示例 2:

输入: root=[]

输出: []

示例 3:

输入: root=[1]

输出: [1]

示例 4:

输入: root=[ 1,2 ]

输出: [ 2,1 ]

示例 5:

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

输出: [ 1,2 ]

提示:

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

-100=Node.val=100

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

思路一:

用递归思想进行左右子树的扫描

中序为左子树-根节点-右子树

小知识:

List是接口,而ArrayList是在一个数组中实现的List类。

ArrayList有add ().remove )等方法。ArrayList Element arrayList = new ArrayListElement()

class解决方案{ publiclistintegerinordertraversal (treenode root ) listintegerres=newarraylistinteger ); 输入顺序(根,res ); 返回RES; } public void in order (treenode root,ListInteger res ) if (root==null ) { return; } in order (根. left,res ); RES.add (根. val ); norder(root.right,res ); )构想2 :

使用迭代的算法思想

class解决方案{ publiclistintegerinordertraversal (treenode root ) listintegerres=newarraylistinteger ); dequetreenodestk=newlinkedlisttreenode (; wile (路线!=空| |! stk.isEmpty () ) while ) (root!=null(STK.push(root ); 根=根.左; } root=stk.pop (; RES.add (根. val ); root=root.right; }返回RES; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。