今天跟大家讲讲如何回到python二叉树的中序遍历。很多人可能不太了解。为了让大家更好的了解,边肖为大家总结了以下内容。希望你能从这篇文章中有所收获。
1.给定一棵二叉树,返回它的中间顺序遍历。
2 .示例
示例:输入: [1,null,2,3] 1 \ 2/3输出3360 [1,3,2]高级:递归算法非常简单。可以通过迭代算法做到吗?
3、解决思路
这里有两种方法可以解决这个问题,一种是递归求解,另一种是迭代求解。
4、问题解决程序
导入Java . util . ArrayList;导入Java . util . list;导入Java . util . stack;public class inodertraversaltest2 { public static void main(String[]args){ tree node t1=new tree node(1);TreeNode t2=新的tree node(2);TreeNode t3=新的tree node(3);t1.right=t2t2.left=t3list integer list=inodertraversal 2(t1);system . out . println(' list=' list ');}私有静态list integer list=new ArrayList();公共静态list integer inodertraversation(tree node root){ if(root==null){返回列表;} dfs(根);退货清单;}私有静态void DFS(TreeNode root){ if(root . left!=null){ DFS(root . left);} list . add(root . val);if (root.right!=null){ DFS(root . right);} }公共静态list integer inodertraversal 2(TreeNode root){ if(root==null){ return list;} StackTreeNode堆栈=new Stack();TreeNode tempNode=rootwhile(!stack.isEmpty() || tempNode!=null) { while (tempNode!=null){ stack . push(tempNode);tempNode=tempNode.left} TreeNode temp=stack . pop();list . add(temp . val);tempNode=temp.right}返回列表;}}
5.问题解决程序的图片版本
就按照二叉树的特点去做。递归在时间消耗上比迭代快得多。递归使用系统栈写,迭代使用自己创建的栈结构。
看完以上内容,你对python二叉树的中序遍历如何返回有什么进一步的了解吗?如果您想了解更多知识或相关内容,请关注行业资讯频道,感谢您的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/144273.html