二叉树层序遍历和之字遍历

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);

}

 

posted @   材料狗不许睡午觉  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示