1、利用递归的方式获取树的前序遍历结果
//获取树的前序遍历
public static String preTraver(TreeNode root){
if (root!=null) {
re += root.val;
if (root.left != null)
preTraver(root.left);
if (root.right != null)
preTraver(root.right);
}
return re;
}
2、 利用递归的方式获取树的中序遍历结果
//获取树的中序遍历
public static String medTraver(TreeNode root){
if (root!=null) {
if (root.left != null)
medTraver(root.left);
re += root.val;
if (root.right != null)
medTraver(root.right);
}
return re;
}
3、利用递归的方式获取树的后序遍历结果
//获取树的后序遍历
public static String aftTraver(TreeNode root){
if (root!=null) {
if (root.left != null)
preTraver(root.left);
if (root.right != null)
preTraver(root.right);
re += root.val;
}
return re;
}
4、利用队列实现层次遍历
//获取树的层次遍历
public static String levelTraver(TreeNode root){
Queue<TreeNode> queue = new ArrayDeque<TreeNode>();
TreeNode node;
if (root!=null)
queue.offer(root);
while (!queue.isEmpty()){
node=queue.poll();
re+=node.val;
if (node.left!=null)
queue.offer(node.left);
if (node.right!=null)
queue.offer(node.right);
}
return re;
}
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
36 37 38 39 40 41 42 43 44 45
<center>Coding Blog Github Blog </center>
网友评论