文章目录
二叉树的层序遍历
二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]
示例 2:
输入:root = [1]
输出:[[1]]
示例 3:
输入:root = []
输出:[]
层序遍历
使用队列,队头出队带入他的左右节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
   | vector<vector<int>> levelOrder(TreeNode* root) {         vector<vector<int>> ret;         queue<TreeNode*> s;         int levelsize=0;         if(root)         {             s.push(root);             levelsize=1;         }                  while(!s.empty())         {             levelsize=s.size();             vector<int> v;             while(levelsize--)             {                 TreeNode* parm=s.front();                 v.push_back(parm->val);                 if(parm->left)                 {                 s.push(parm->left);                                  }                 if(parm->right)                 {                 s.push(parm->right);                                  }                 s.pop();             }             ret.push_back(v);                      }         return ret;     }
 
  | 
 
变形
计算第k层的节点个数
 
计算一共的节点个数
 
1 2 3 4
   | for(auto e:ret) { 	total+=e.size(); }
 
  | 
 
计算深度
 
二叉树自底向上遍历
 
1
   | reverse(ret.begin(),ret.end());
 
  |