Java构造二叉树以及三种递归遍历

来源:互联网 发布:条码采集器软件 编辑:程序博客网 时间:2024/05/21 05:06

构造二叉树,先得要构建一个树的节点,定义一个TreeNode:

public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; }}

插入节点,建立新树:

TreeNode root = new TreeNode(1);root.left = new TreeNode(2);

三种遍历方法,先序,中序,后序,都是用递归方法:

public void preorderTraversal(TreeNode root,ArrayList<Integer> ret){int rootvalue = root.val;ret.add(rootvalue);if(root.left != null){        inorderTraversal(root.left,ret);        }            if(root.right != null){        inorderTraversal(root.right,ret);        }}public void inorderTraversal(TreeNode root,ArrayList<Integer> ret){        if(root.left != null){        inorderTraversal(root.left,ret);        }        int rootvalue = root.val;ret.add(rootvalue);        if(root.right != null){        inorderTraversal(root.right,ret);        }}public void postorderTraversal(TreeNode root,ArrayList<Integer> ret){if(root.left != null){        inorderTraversal(root.left,ret);        }            if(root.right != null){        inorderTraversal(root.right,ret);        }        int rootvalue = root.val;ret.add(rootvalue);}


0 0
原创粉丝点击