JAVA二叉树先序遍历递归+非递归
2016-05-15 22:31
441 查看
非递归先序遍历:
<span style="font-size:24px;">public ArrayList<Integer> preorderTraversal(TreeNode root) { if(root==null) return new ArrayList<Integer> (); ArrayList<Integer> list=new ArrayList<Integer> (); Stack<TreeNode> s=new Stack<TreeNode>(); TreeNode p=root; while(p!=null||!s.isEmpty()){ while(p!=null){ list.add(p.val); s.push(p); p=p.left; } if(!s.isEmpty()){ p=s.pop(); p=p.right; } } return list; }</span>
递归先序遍历:
<span style="font-size:24px;"> ArrayList<Integer>list=new ArrayList<Integer>(); public ArrayList<Integer> preorderTraversal(TreeNode root){ if(root==null) return list; list.add(root.val); preorderTraversal(root.left); preorderTraversal(root.right); return list; }</span>
相关文章推荐
- java json操作
- java应用----过滤器
- 使用JavaMail创建邮件和发送邮件
- Java-1001. 害死人不偿命的(3n+1)猜想 (15)
- Java并发-执行器Callable,Future
- Java入门第二季-练习:租车系统
- Java-1021. 个位数统计 (15)
- SpringMVC拦截器实现登录认证
- springmvc之log4j
- 设计模式之单例模式
- java31java当中的异常(二)
- Spring lazy-init
- springmvc之配置
- JAVA第六次作业
- hdoj2023(java)求平均成绩(二维数组+一维数组+格式问题+行转化列)
- JSP--JavaBean
- struts2中struts.xml中的属性值含义
- 理解SpringAOP
- Java构造器小结
- Java使用SmartUploadServlet进行文件的上传与下载