JAVA中的树的遍历
2015-08-09 13:50
537 查看
递归计算的极好材料,一般以二叉树为例
一般模式
伪代码如下public result calTree(TreeNode root, Result curResult){ if(root == null){ return curResult; } else { Result leftResult = calTree(root.left, curResult); Result rightResult = calTree(root.right, curResult); return cal(leftResult, rightResult); } }
计算树的深度
public int maxDepth(TreeNode root) { if (root == null) return 0; int left = maxDepth(root.left); int right = maxDepth(root.right); return Math.max(left, right) + 1; }
遍历输出树
private List<Integer> preOrder(TreeNode node, List<Integer> list){ if(node != null){ if(node.left == null && node.right == null){ list.add(node.val); } else { list.add(node.val); preOrder(node.left, list); preOrder(node.right, list); } } return list; } private List<Integer> inOrder(TreeNode node, List<Integer> list){ if(node != null){ inOrder(node.left, list); list.add(node.val); inOrder(node.right,list); } return list; }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统