剑指 Offer 32 - III. 从上到下打印二叉树 III
题目:
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
例如:
给定二叉树: [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回其层次遍历结果:
[ [3], [20,9], [15,7] ]
提示:
节点总数 <= 1000
代码:
//实现偶数层,逆置节点,只要在插入时选择头插法。
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 class Solution { 11 List <List<Integer>> list=new ArrayList<>(); 12 public List<List<Integer>> levelOrder(TreeNode root) { 13 fun(root,0); 14 return list; 15 16 } 17 18 public void fun(TreeNode root,int t){ 19 if(root!=null){ 20 if(t>=list.size()){ 21 list.add(new ArrayList()); 22 } 23 if(t%2==0){ 24 list.get(t).add(root.val); 25 }else{ 26 list.get(t).add(0,root.val); 27 } 28 fun(root.left,t+1); 29 fun(root.right,t+1); 30 } 31 } 32 }
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术