二叉树中序遍历(递归+非递归)
来源:互联网 发布:电子音乐制作软件 编辑:程序博客网 时间:2024/06/04 18:31
二叉树中序遍历:左-中-右
树节点
class TreeNode {public int val; public TreeNode left, right; public TreeNode(int val) { this.val = val; this.left = this.right = null; }}
递归实现
/* * 二叉树中序遍历 * 递归实现 */public class InorderTraversal {public ArrayList<Integer> inorderTraversal(TreeNode root){ArrayList<Integer> arr = new ArrayList<Integer>();inorder(arr,root);return arr;}public ArrayList<Integer> inorder(ArrayList<Integer> arr, TreeNode root){if(root == null)return arr;if(root!=null){if(root.left!=null){arr = inorder(arr, root.left);}arr.add(root.val);if(root.right!=null){arr = inorder(arr, root.right);}}return arr;}}
/* * 二叉树中序遍历 * 非递归方式 */public class InorderTraversal1 {public ArrayList<Integer> inorderTraversal(TreeNode root){ArrayList<Integer> arr = new ArrayList<Integer>();ArrayList<TreeNode> p =new ArrayList<TreeNode>();if(root == null){return arr;}while(root!=null || p.size()!=0){while(root!=null){p.add(root);root = root.left;}root = p.get(p.size()-1);arr.add(root.val);p.remove(p.size()-1);root = root.right;}return arr;}}
0 0
- 二叉树中序遍历(递归+非递归)
- 二叉树中序递归、非递归遍历
- 二叉树中序遍历递归+非递归
- 非递归二叉树中序遍历
- 二叉树中序遍历非递归
- 二叉树中序遍历(非递归)
- 二叉树中序遍历非递归
- 二叉树遍历(递归,非递归)
- 二叉树中序遍历(递归、栈实现非递归、不用栈实现非递归)
- 二叉树中序遍历 递归和非递归遍历
- 二叉树遍历(递归、非递归、Morris遍历)
- 二叉树遍历(递归、非递归、Morris遍历)
- 二叉树的遍历(递归+非递归+层次遍历)
- 二叉树中序遍历的非递归算法
- 二叉树中序遍历非递归算法.
- 二叉树中序遍历非递归算法详解
- 二叉树中序遍历的非递归算法
- 二叉树中序遍历非递归算法
- 物联网时代的35款开源工具
- s3c6410中断处理
- SGU 126 Boxes(数论)
- Apkplug 模块化开发介绍
- Matrix Game(尼姆博弈)
- 二叉树中序遍历(递归+非递归)
- 二分查找的巧妙运用(C++)
- Python条件语句
- JavaScript核心对象参考手册-------window对象
- Ping过程 原理 详解(图)
- 物联网开源平台KAA
- php魔术常量,魔术方法
- 遗传算法优化BP神经网络
- Android webview 地图不显示