二叉树先、中、后序排序(算法)
public class TwoTree{ List<Integer> pre = new ArrayList<Integer>();//存储先序遍历后节点 List<Integer> in = new ArrayList<Integer>();//存储中序遍历后节点 List<Integer> post = new ArrayList<Integer>();//存储后序遍历后节点 public int[][] sortTree(TreeNode root){ if(root==null){ return new int[][]{{}};//若为空,返回空数组 } List<List<Integer>> restList = new ArrayList<>();//存储所有排序后列表
preOrder(root); inOrder(root); postOrder(root);
restList.add(pre);
restList.add(in);
restList.add(post); int arr[][] = new arr[restList.size()][restList.get(0).size()];//返回排序后的二维数组 for(int i=0;i<restList.size();i++){ for(int j=0;j<restList.get(0).size();j++){ arr[i][j] = restList.get(i).get(j); } } return arr; }
//先序遍历 public void preOrder(TreeNode root){ if(root==null) return; pre.add(root.val); preOrder(root.left); preOrder(root.right); }
//中序遍历 public void inOrder(TreeNode root){ if(root==null) return; inOrder(root.left); in.add(root.val); inOrder(root.right); }
//后序遍历 public void postOrder(TreeNode root){ if(root==null) return; postOrder(root.left); postOrder(root.right); post.add(root.val); } }
代码分析
先序遍历:中-左-右(1 2 4 5 3)
中序遍历:左-中-右(4 2 5 1 3)
后序遍历:左-右-中(4 5 2 3 1)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!