二叉树的层序遍历(代码片段)

 落禅  落禅     2023-01-02     773

关键词:

107. 二叉树的层序遍历 II

给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

例如:
给定二叉树 [3,9,20,null,null,15,7],3/ \\
  9  20/  \\
   15   7
   
返回其自底向上的层序遍历为:
[
  [15,7],
  [9,20],
  [3]
]

首先完成二叉树的层序遍历,然后将数组进行逆置,就完成了自低向下的二叉树的层序遍历,故此题的难点是完成二叉树的层序遍历

这里我们借助队列来实现,利用队列先进先出的特性录入每一个节点的值

class Solution 
public:
//利用队列进行实现
    vector<vector<int>> levelOrderBottom(TreeNode* root) 
        queue<TreeNode*>q;
        vector<vector<int>>vv;
        //判断头结点是否为空,如果不为空就让头结点进入队列
        if(root!=nullptr)
        
            q.push(root);
        
        int levelsize=0;//用来控制每一层遍历的个数
        while(!q.empty())
        
            vector<int>v;
            levelsize=q.size();
            //每一层的遍历
            for(int i=0;i<levelsize;i++)
            
               //记录当前节点
                TreeNode*front=q.front();
                q.pop();
                //将当前节点的值录入数组
                v.push_back(front->val);
                //让当前节点的左孩子进入队列
                if(front->left!=nullptr)
                
                    q.push(front->left);
                
                //让当前节点的右孩子进入队列
                if(front->right!=nullptr)
                
                    q.push(front->right);
                
            
            vv.push_back(v);
        
        //反转数组
        reverse(vv.begin(),vv.end());
        return vv;
    
;

二叉树的层序遍历(代码片段)

107.二叉树的层序遍历II给定一个二叉树,返回其节点值自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7],​3​ /\\920​/\\157返回其自底... 查看详情

nc15二叉树的层序遍历(代码片段)

题目描述二叉树的层序遍历解题思路运用二叉树的层序遍历和二叉树的深度计算的思想;代码展示/***structTreeNode* intval;* structTreeNode*left;* structTreeNode*right;*;*/classSolutionpublic:/****@paramrootTreeNode类*@returnint整型vector 查看详情

java二叉树的层序遍历(代码片段)

查看详情

102.二叉树的层序遍历(代码片段)

二叉树的层序遍历给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7]3/920/157返回其层序遍历结果:[[3],[9,20],[15,7]]/***Defini... 查看详情

102.二叉树的层序遍历(代码片段)

/***Definitionforabinarytreenode.*structTreeNode*intval;*structTreeNode*left;*structTreeNode*right;*;*//***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesa 查看详情

二叉树的层序遍历(代码片段)

题目描述:给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],3/920/157返回其层次遍历结果:[[3],[9,20],[15,7]]  解题思路:首先我们要知道层序遍... 查看详情

刷题-力扣-102.二叉树的层序遍历(代码片段)

102.二叉树的层序遍历题目链接来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述给你一个二叉树,请你返回其... 查看详情

c++--二叉树的层序遍历(代码片段)

二叉树的层序遍历题目要求:题目来源:力扣classSolutionpublic:vector<vector<int>>levelOrder(TreeNode*root)if(root==nullptr)returnvector<vector<int>>();queue<TreeNode*> 查看详情

2021-4-9天梯赛补题(完全二叉树的层序遍历)(代码片段)

完全二叉树的层序遍历题目链接:link.原题描述一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为D的,有N个结点的二叉树,若其结点对应于相同深度完美二叉树的层序... 查看详情

二叉树的层序遍历--结合递归算法(代码片段)

...;intrear=0;intLevelOrderTraverse(BiTreeT)if(!isTreeExits)cout<<"二叉树不存在"; 查看详情

102#二叉树的层序遍历(代码片段)

题目描述给定一个二叉树,返回其按层次遍历的节点值。(即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7],3/920/157返回其层次遍历结果:[[3],[9,20],[15,7]]分析思路常规思维法我们理一遍题意:给定一棵二... 查看详情

107.二叉树的层序遍历ii(代码片段)

力扣打卡:107.二叉树的层序遍历II解题思路正常的层序遍历,最后进行交换即可层序遍历借助的数据结构是:队列首先将root节点加入队列,然后记录此时的长度,因为队列的先进先出,所以需要有一个len记录每一层的数量同一层的遍历... 查看详情

leetcode107.二叉树的层序遍历ii(代码片段)

给定一个二叉树,返回其节点值自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7],3/\\920/\\157返回其自底向上的层序遍历为:[[15,7],... 查看详情

leetcode107.二叉树的层序遍历ii(代码片段)

给定一个二叉树,返回其节点值自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7],3/\\920/\\157返回其自底向上的层序遍历为:[[15,7],... 查看详情

429.n叉树的层序遍历(代码片段)

...扣打卡:429.N叉树的层序遍历解题思路这道题目就是二叉树的变形,二叉树的左右子节点变为了一群子结点写出二叉树的框架原来判断添加左右子节点的位置,改成判断添加一群子节点代码/*//DefinitionforaNode.classNodepubli... 查看详情

leetcode——二叉树的层序遍历(代码片段)

1.二叉树的层序遍历给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。2.题解解法一:BFS解决:广度优先搜索这题和剑指Offer32——从上到下打印二叉树其实是... 查看详情

leetcodeno.102二叉树的层序遍历(代码片段)

题目描述给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],  3  /\\ 9 20   / \\  15 7返回其层序遍历结果:[ [3], [... 查看详情

二叉树的层序遍历原理+leetcode真题练习(代码片段)

二叉树的层序遍历层序遍历是继前序、中序、后序遍历之后的第二类遍历方式。一、层序遍历假设二叉树根节点(root)所在层数为1,层序遍历就是从根节点出发,首先访问根节点,接着从左到右的访问第二层上的节点&#... 查看详情