二叉树层次遍历(算法)
1 public ArrayList<ArrayList<Integer>> LevelQuery(TreeNode root){ 2 //存放返回结果 3 ArrayList<ArrayList<Integer>> restList = new ArrayList<>(); 4 5 if(root==null) 6 return restList; 7 8 //存放当前层节点 9 ArrayList<TreeNode> level = new ArrayList<>(); 10 level.add(root); 11 12 while(!level.isEmpty()){ 13 //存放当前层结果 14 ArrayList<Integer> levelRest = new ArrayList<>(); 15 //存放下一层节点 16 ArrayList<TreeNode> nextNode = new ArrayList<>(); 17 for(TreeNode node:level){ 18 levelRest.add(node.val); 19 if(node.left!=null) 20 nextNode.add(node.left); 21 if(node.right!=null) 22 nextNode.add(node.right); 23 } 24 level = nextNode;//替换到处理下一层 25 restList.add(levelRest); 26 } 27 return restList; 28 }
代码分析
进行每层遍历,将每层的结果存入List , 输出结果应为【【1】,【2,3】,【4,5】】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!