最近抽时间看了下二叉树,下面把二叉树的相关遍历方式共享下
1.定义树结构类

 public class TreeNode {    public TreeNode left;    public TreeNode getLeft() {        return left;    }    public void setLeft(TreeNode left) {        this.left = left;    }    public TreeNode getRight() {        return right;    }    public void setRight(TreeNode right) {        this.right = right;    }    public int getVal() {        return val;    }    public void setVal(int val) {        this.val = val;    }    public TreeNode right;    public int val ;}

2.创建二叉树

public void test(){        TreeNode treeNode = new TreeNode();        treeNode.setVal(0);        TreeNode treeNode1 = new TreeNode();        treeNode1.setVal(1);        TreeNode treeNode2 = new TreeNode();        treeNode2.setVal(2);        treeNode.setLeft(treeNode1);        treeNode.setRight(treeNode2);        TreeNode treeNode3 = new TreeNode();        treeNode3.setVal(3);        TreeNode treeNode4 = new TreeNode();        treeNode4.setVal(4);        treeNode1.setLeft(treeNode3);        treeNode1.setRight(treeNode4);        TreeNode treeNode5 = new TreeNode();        treeNode5.setVal(5);        TreeNode treeNode6 = new TreeNode();        treeNode6.setVal(6);        treeNode2.setLeft(treeNode5);        treeNode2.setRight(treeNode6);        TreeNode treeNode7 = new TreeNode();        treeNode7.setVal(7);        TreeNode treeNode8 = new TreeNode();        treeNode8.setVal(8);        treeNode3.setLeft(treeNode7);        treeNode3.setRight(treeNode8);        //前序        preOrderTraverse(treeNode);        //中序        inOrderTraverse(treeNode);        //后序        postOrderTraverse(treeNode);    }  /*二叉树的前序遍历递归算法*/    private void preOrderTraverse(TreeNode treeNode){        if(treeNode==null)return;        Log.e("MainActivity","preOrderTraverse--val:"+treeNode.val);        preOrderTraverse(treeNode.left);        preOrderTraverse(treeNode.right);    }    /*二叉树的中序遍历递归算法*/    void inOrderTraverse(TreeNode treeNode)    {        if(treeNode==null)return;        inOrderTraverse(treeNode.left); /*中序遍历左子树*/        Log.e("MainActivity","inOrderTraverse--val:"+treeNode.val);        inOrderTraverse(treeNode.right); /*最后中序遍历右子树*/    }    /*二叉树的后序遍历递归算法*/    void postOrderTraverse(TreeNode treeNode)    {        if(treeNode==null)return;        postOrderTraverse(treeNode.left); /*先后遍历左子树*/        postOrderTraverse(treeNode.right); /*在后序遍历右子树*/        Log.e("MainActivity","postOrderTraverse---val:"+treeNode.val);    }

更多相关文章

  1. android递归查找文件
  2. Android下soap访问webservice
  3. LocalBroadcastManager详解
  4. Android触摸事件小小画板(7)
  5. Android(安卓)SQLite数据库判断某张表是否存在的语句
  6. android的sd卡上创建目录不显示
  7. Android(安卓)Audio相关 AudioFlinger类
  8. 移动安全测试框架MobSF(二):动态分析
  9. Linux 解决文件名 中文乱码问题

随机推荐

  1. android sdk adt 版本
  2. Android 文字阴影、layer-list、shape和s
  3. 【转】Android中gravity与layout_gravity
  4. android实现本程序数据的备份与恢复
  5. andorid 记录,以后看
  6. Android四大功能组件深入分析
  7. Android 之 Eclipse 导入 Android 源码
  8. TextView过长显示省略号, TextView文字中
  9. android:textAppearance解析
  10. Android异步处理三:Handler+Looper+Messag