后序遍历二叉树
2016-04-15 10:47
357 查看
后序遍历不同于先序和中序,它是要先处理完左右子树,然后再处理根(回溯),需要一个记录哪些节点已经被访问的结构(可以在树结构里面加一个标记),这里可以用map实现
public static void postOrderStack(Node root){ if(root==null)return; Stack<Node> s=new Stack<Node>(); Map<Node,Boolean> map=new HashMap<Node,Boolean>(); s.push(root); while(!s.isEmpty()){ Node temp=s.peek(); if(temp.left!=null&&!map.containsKey(temp.left)){ temp=temp.left; while(temp!=null){ if(map.containsKey(temp))break; else s.push(temp); temp=temp.left; } continue; } if(temp.right!=null&&!map.containsKey(temp.right)){ s.push(temp.right); continue; } Node t=s.pop(); map.put(t,true); System.out.println(t.value); } }
相关文章推荐
- 雨量等
- 【练习】使用服务下载图片并保存到sdcard
- php多虚拟主机配置
- 评论
- ArcEngine地图窗口指定区域导出指定DPI多格式---delphi/C#实现
- Linux openssl 实现
- 不正确的使用HashMap引发死循环及元素丢失
- 【 视频 】crf与bitrate对照表
- Mysql 免安装版配置
- 图的深度优先遍历和广度优先遍历--邻接矩阵法
- Learning Scrapy笔记(五)- Scrapy登录网站
- printf in KEIL C51
- 使用NPOI操纵Excle,并输入到客户端
- NLTEST to test the trust relationship between a workstation and domain
- Android动态改变Background后Padding无效的问题
- NodeJS、NPM安装配置步骤(windows版本)
- 知识小札
- 源码nginx+php 7.0+mysql搭建WordPress
- leetcode66题 题解 翻译 C语言版 Python版
- iOS 在只能输入15个字符的情况下由于属于表情占两个字符,最后一个表情损坏