package cankao;//递归的方式遍历二叉树
public class erchashu{
static class TreeNode{
private int value;
private TreeNode left;
private TreeNode right;
TreeNode(int value){
this.value = value;
}
}
public static void main(String[] args){
TreeNode head = new TreeNode(1);
TreeNode one_right = new TreeNode(8);
TreeNode one_left = new TreeNode(5);
head.right = one_right;
head.left = one_left;
TreeNode two_right = new TreeNode(10);
TreeNode two_left = new TreeNode(9);
one_left.right = two_right;
one_left.left = two_left;
TreeNode three_right = new TreeNode(20);
TreeNode three_left = new TreeNode(10);
one_right.right = three_right;
one_right.left = three_left;
//前序遍历
pre_tree(head);
System.out.println();
//中序遍历
mid_tree(head);
System.out.println();
//后序遍历
after_tree(head);
}
public static void pre_tree(TreeNode head){
if(head == null ) return;
System.out.println(head.value);
pre_tree(head.left);
pre_tree(head.right);
}
public static void mid_tree(TreeNode head){
if(head == null ) return;
mid_tree(head.left);
System.out.println(head.value);
mid_tree(head.right);
}
public static void after_tree(TreeNode head){
//递归就是不断的将方法压入栈的,然后根据返回条件,不断的进行弹出栈的过程
if(head == null ) return;
after_tree(head.left);
after_tree(head.right);
System.out.println(head.value);
}
}
常见算法面试题-二叉树递归遍历
最新推荐文章于 2024-07-19 15:45:46 发布