常见算法面试题-二叉树递归遍历

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);
                
                
      }
     

}
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值