首页 > 其他分享 >二叉树层序遍历和之字遍历

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

时间:2023-04-09 18:55:06浏览次数:36  
标签:遍历 temp offer 层序 flag 二叉树 null row

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

}

 

标签:遍历,temp,offer,层序,flag,二叉树,null,row
From: https://www.cnblogs.com/materialdog/p/17300806.html

相关文章

  • 判断完全二叉树
    1.题目链接天梯赛真题--是否是完全二叉搜索树2.根据节点编号判断(better)借鉴自这里规定根节点的编号为\(1\),左孩子节点编号为\(left\),右孩子节点编号为\(right\),父节点的节点编号为\(fa\),则有:\(left=fa<<1\)\(right=fa<<1|1\)由于完全二叉树的节点编号......
  • 14.6二叉树的层序遍历实战
    function.h////Createdby93757on2023/3/21.//#ifndefINC_1_TREE_FUNCTION_H#defineINC_1_TREE_FUNCTION_H#include<stdio.h>#include<stdlib.h>typedefcharBiElemType;typedefstructBiTNode{BiElemTypec;//c就是书籍上的datastru......
  • 二叉树前序中序后序遍历实战
    function函数////Createdby93757on2023/3/21.//#ifndefINC_1_TREE_FUNCTION_H#defineINC_1_TREE_FUNCTION_H#include<stdio.h>#include<stdlib.h>typedefcharBiElemType;typedefstructBiTNode{BiElemTypec;//c就是书籍上的datastru......
  • 14.4二叉树层次建树
    创建function函数////Createdby93757on2023/3/21.//#ifndefINC_1_TREE_FUNCTION_H#defineINC_1_TREE_FUNCTION_H#include<stdio.h>#include<stdlib.h>typedefcharBiElemType;typedefstructBiTNode{BiElemTypec;//c就是书籍上的datast......
  • apache 路径遍历
    来自tryhackeme的漏洞复现CVE-2021-41773/42013利用:路径遍历利用将允许服务器公开任意文件需要启用mod_cgi模块才能获得远程代码执行2021年10月5日,一个CVE详细描述了对ApacheHTTPServerv2.4.49的路径遍历攻击。分配编号为CVE-2021-41773,发布时具有以下描述:在......
  • 剑指 Offer 37. 序列化二叉树
    题目链接:剑指Offer37.序列化二叉树取巧做法classCodec{private:TreeNode*root;public://Encodesatreetoasinglestring.stringserialize(TreeNode*root){this->root=root;return"";}//Decodesyourencoded......
  • 剑指 Offer 33. 二叉搜索树的后序遍历序列
    题目链接:剑指Offer33.二叉搜索树的后序遍历序列方法:分治解题思路首先假设该序列能够构成某个二叉搜索树的后序遍历序列,那么这个序列会被分成3个部分:左子树序列,右子树序列,父节点,其中左右子树节点数可能为0;现在就可以检查该序列是否符合这个规律,然后递归的判断子树是否符合......
  • 遍历JsonObject 所有的key和value封装到两个list中
    可以使用main方法测试体验效果publicstaticvoidmain(String[]args){StringoriginalStr="{\"code\":200,\"msg\":\"success\",\"data\":{\"realName\":\"超级管理员\",\"defaultApp\":......
  • JavaScript遍历数组用splice方法删除元素,这样写可能有遗漏,你遇到过吗?
    在编写“圳品”信息系统中,有时需要对二维数组中的数据进行筛选并删除一些元素,比如删除二维数组中首个元素为0的行。开始是用for循环访问数组+splice方法删除元素来做:vara=newArray([0,0,0,0],[1,1,1,1],[0,2,2,2],[......
  • JZ8 二叉树的下一个结点
    做法一:直接求出中序遍历,并用vector容器存储。/*structTreeLinkNode{intval;structTreeLinkNode*left;structTreeLinkNode*right;structTreeLinkNode*next;TreeLinkNode(intx):val(x),left(NULL),right(NULL),next(NULL){......