您的位置:首页 > 编程语言 > Java开发

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 二叉树 递归 遍历