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

cheshl cheshl     2022-12-12     440

关键词:

/**
 * Definition for a binary tree node.
 * struct TreeNode 
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * ;
 */


/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
 #define MAXNODE 5000
 struct TreeNode  *treequeue[MAXNODE];
 
int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes)
    *returnSize=0;
    if(root==NULL)
        * returnSize=0;
        return NULL;
    
    //二维数组分配内存
    int **ret=(int **)malloc(sizeof(int *)*MAXNODE);
    //不能够申请这么大空间,后面使用的时候按照需要申请,否则容易超时
    //for(int i=0;i<MAXNODE;i++)
    //    ret[i]=(int *)malloc(sizeof(int)*MAXNODE);
    //
    //出参数分配内存
    *returnColumnSizes = (int *)malloc(sizeof(int) * MAXNODE);//注意这块也要分配内存

    int start=0;
    int end=0;
    
    treequeue[end++]=root;
    struct TreeNode  *tmptree=NULL;

    while(start<end)
        //当前层节点数
        (* returnColumnSizes)[*returnSize]=end-start;
        // 此处已经有长度可以在这里进行申请内存,减少时间使用
        ret[*returnSize] = (int *)malloc(sizeof(int) * (end-start));
        for(int i=0;i<(*returnColumnSizes)[*returnSize];i++)
            tmptree=treequeue[start];
            ret[*returnSize][i]=tmptree->val;
            if(tmptree->left)
                treequeue[end++]=tmptree->left;
            
            if(tmptree->right)
                treequeue[end++]=tmptree->right;
            
            start++;
        
        (*returnSize)++;
    
    return ret;

  

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

 

示例:
二叉树:[3,9,20,null,null,15,7],

    3
   /   9  20
    /     15   7

返回其层次遍历结果:

[
  [3],
  [9,20],
  [15,7]
]


总结:

C语言实现:栈和队列
102题:
优秀代码:
https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/102-er-cha-shu-de-ceng-xu-bian-li-cyu-yan-bfs-by-x/
bfs:
https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/cyu-yan-zhen-de-zao-bu-qi-lun-zi-liao-shun-xu-dui-/
https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/cti-jie-bfs-shu-zu-mo-ni-dui-lie-by-justdoitno1/

https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/xiao-hao-nei-cun-jiao-da-by-lang-dao/只实现初始化和pop push操作

https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/c-yu-yan-4-ms-89-mb-by-chen-xiang-yin/使用大数组替代队列
申请空间数组
https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/102-er-cha-shu-de-ceng-xu-bian-li-cyu-yan-bfs-by-x/

dfs:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/cyu-yan-shen-du-you-xian-sou-suo-by-jing-shui-li-2/

 

c语言实现队列:
https://mp.weixin.qq.com/s?src=11&timestamp=1606011440&ver=2721&signature=OJj6qdyHzyY9zVf6zzunnMeLMkOo6RAGYzj8WbeigLasQUzmxOG*m13VqbB27cUFfta8SGzlbxCf6U7nxpYMy028qDJLemKXOfmKMyR*37IUkRXbNc45M1bJQ889BmVR&new=1
https://blog.csdn.net/weixin_41143631/article/details/81675177

C语言实现栈:
https://zhuanlan.zhihu.com/p/90582016

本体主要考察:
1、int** returnColumnSizes返回方式
2、bfs使用方法;
3、申请内存尽量按照需要使用否则容易出现超时
4、二维指针的返回值使用

5、dfs要使用stack,bfs要使用队列




















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

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

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

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

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

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

leetcode刷题100天—102.二叉树的层序遍历(二叉树)—day09(代码片段)

...#xff1a;作者:神的孩子在歌唱大家好,我叫运智102.二叉树的层序遍历难度中等987收藏分享切换为英文接收动态反馈给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点&#x... 查看详情

102.二叉树的层序遍历

102.二叉树的层序遍历给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出:本文来自博客园,作者:Bail... 查看详情

leetcode-102-二叉树的层序遍历

二叉树的层序遍历题目描述:给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl...著作权归领扣网络所... 查看详情

leetcode刷题python102.二叉树的层序遍历(代码片段)

1题目给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出: 查看详情

102.二叉树的层序遍历(队列+bfs+结构体)(代码片段)

题目描述leetcode-102:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/解题关键队列BFS结构体碎碎念这道题可以不用结构体,在while循环里面加一个for循环来遍历某一层的节点。但是很多宽搜的题一般节点需要存储一些别的信息... 查看详情

#yyds干货盘点#leetcode-102.二叉树的层序遍历

...出特性,将要遍历的节点放到队列里,实现层序遍历102.二叉树的层序遍历给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示... 查看详情

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

二叉树的层序遍历题目描述题目分析二叉树的层序遍历代码实现总结题目描述题目分析xxxx这道题,题目是“二叉树的层序遍历”,首先我们提取一下题目和题目内容的关键词。“二叉树”、“层序遍历”、“每一层值分... 查看详情

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

二叉树的层序遍历题目描述题目分析二叉树的层序遍历代码实现总结题目描述题目分析xxxx这道题,题目是“二叉树的层序遍历”,首先我们提取一下题目和题目内容的关键词。“二叉树”、“层序遍历”、“每一层值分... 查看详情

[javascript刷题]搜索-二叉树的层序遍历,leetcode102

[JavaScript刷题]搜索-二叉树的层序遍历,leetcode102githubrepo地址:https://github.com/GoldenaArcher/js_leetcode,Github的目录大概会更新的更勤快一些。题目地址:102.BinaryTreeLevelOrderTraversal题目如下:Giventherootofabinar 查看详情

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

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

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

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

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

题目描述:给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。 返回其层次遍历结果:示例:二叉树:[3,9,20,null,null,15,7], 思想:访问过程中,只需要将同一层中的节点同时入... 查看详情

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

查看详情

leetcodejs实现二叉树(前中后层序)遍历(递归迭代法)(代码片段)

文章目录144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历102.二叉树的层序遍历107.二叉树的层序遍历II144.二叉树的前序遍历原题链接:144.二叉树的前序遍历递归法:/***Definitionforabinarytreenode.*functionTreeNode(val,left,right)*t... 查看详情

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

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