二叉树层序遍历和之字遍历
1.用一个队列记录当前层的节点,然后一个个取出,取出的同时将取出节点的儿子节点加入到队列中。
2.之字遍历则需要一个标志为将行进行翻转
ArrayList<Integer>(ArrayList<Integer>()) res;
flag = true;//实现奇数行翻转,偶数行不翻转
Queue temp;
temp.offer(head)
while(temp != null){
n = temp.size();
flag = ! flag;
ArryList<Integer> row;
for(int i=0;i<n;i++){
p = temp.poll();
row.add(p);
if(p.left != null){temp.offer(left);}
if(p.right != null){temp.offer(right);}
}
if(flag){
Collctions.reverse(row);
}
res.add(row);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异