实现二叉树先序,中序和后序遍历,创建合适大小的二维数组储存遍历信息

您所在的位置:网站首页 r语言遍历数组 实现二叉树先序,中序和后序遍历,创建合适大小的二维数组储存遍历信息

实现二叉树先序,中序和后序遍历,创建合适大小的二维数组储存遍历信息

2023-01-01 14:19| 来源: 网络整理| 查看: 265

实现二叉树先序,中序和后序遍历,创建合适大小的二维数组储存遍历信息

实现二叉树先序,中序和后序遍历

http://www.nowcoder.com/questionTerminal/a9fec6c46a684ad5a3abd4e365a9d362

public class BinaryTree { //很多大佬已经写了用 ArrayList 直接 add()元素后转二维数组输出的方法了,我这里就写纯数组吧 public int[][] threeOrders (TreeNode root) { int[] b = {0,0,0,0};//b数组b[0,1,2]存二叉树的前中后遍历节点信息,b[3]存二叉树的大小 countTree(root,b);//统计二叉树大小 int[][] a = new int[3][b[3]];//根据二叉树大小创建数组 setTree_Array(root,a,b);//递归二叉树找节点信息 return a; } //记录二叉树遍历节点信息 public void setTree_Array(TreeNode r,int[][] a,int[] b){ if(r == null) return; a[0][b[0]] = r.val; //前序遍历:第一次经过节点便打印 b[0]++;// b[0] 是记录储存位置,每输入一个节点,位置往后移动一位 setTree_Array(r.left,a,b); a[1][b[1]] = r.val;//中序遍历:第二次经过节点便打印 b[1]++; // 打印一次加一次,使得数组安装中序遍历储存 setTree_Array(r.right,a,b); a[2][b[2]] = r.val;//后序遍历:第三次经过节点便打印 b[2]++;// 控制输入后序遍历节点信息到二维数组 } public void countTree(TreeNode r,int[] b){// 记录二叉树大小 if(r == null) return; b[3]++;//找到二叉树一个节点,大小+1 countTree(r.left,b); countTree(r.right,b); } }

注意!此信息未认证,请谨慎判断信息的真实性!

提示


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3