1. 题目

给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。

例:
输入:[1,2,3,4,5,null,7,8]1/  \ 2    3/ \    \ 4   5    7/8输出:[[1],[2,3],[4,5,7],[8]]

2. 解题

  • 层序,BFS遍历
class Solution {public:vector<ListNode*> listOfDepth(TreeNode* tree) {if(!tree)return {};queue<TreeNode*> q;vector<ListNode*> ans;q.push(tree);int size;TreeNode* tp;ListNode* head, *cur;bool hashead;while(!q.empty()){size = q.size();hashead = false;while(size--){tp = q.front();q.pop();if(!hashead){head = new ListNode(tp->val);cur = head;hashead = true;}else{cur->next = new ListNode(tp->val);cur = cur->next;}if(tp->left)q.push(tp->left);if(tp->right)q.push(tp->right);}ans.push_back(head);}return ans;}
};

程序员面试金典 - 面试题 04.03. 特定深度节点链表(BFS)相关推荐

  1. 面试题 04.03. 特定深度节点链表

    面试题 04.03. 特定深度节点链表 思路:层次遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* Tr ...

  2. 程序员面试金典 - 面试题 02.03. 删除中间节点

    1. 题目 实现一种算法,删除单向链表中间的某个节点(除了第一个和最后一个节点,不一定是中间节点),假定你只能访问该节点. 示例: 输入:单向链表a->b->c->d->e-& ...

  3. leetcode面试题 04.03. 特定深度节点链表(bfs)

    给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表).返回一个包含所有深度的链表的数组.示例:输入:[1,2,3,4,5,null,7, ...

  4. leetcode —— 面试题 04.03. 特定深度节点链表

    给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表).返回一个包含所有深度的链表的数组. 示例: 解题思路:使用常规的广度优先遍历就可以 ...

  5. 程序员面试金典 - 面试题 10.03. 搜索旋转数组

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...

  6. 程序员面试金典 - 面试题 05.03. 翻转数位(位运算)

    1. 题目 给定一个32位整数 num,你可以将一个数位从0变为1.请编写一个程序,找出你能够获得的最长的一串1的长度. 示例 1: 输入: num = 1775(11011101111) 输出: 8 ...

  7. [Leetcode][程序员面试金典][面试题08.03][JAVA][魔术索引][递归][优化]

    [问题描述][简单] [解答思路] 1. 逐个查找 时间复杂度:O(N) 空间复杂度:O(1) public int findMagicIndex(int[] nums) {for (int i = ...

  8. 程序员面试金典 - 面试题 16.03. 交点(数学)

    1. 题目 给定两条线段(表示为起点start = {X1, Y1}和终点end = {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值. 要求浮点型误差不超过10^-6.若有多个交 ...

  9. 程序员面试金典 - 面试题 04.09. 二叉搜索树序列(双端队列+回溯)**

    1. 题目 从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树. 给定一个由不同节点组成的二叉树,输出所有可能生成此树的数组. 示例: 给定如下二叉树2/ \1 3 返回: ...

最新文章

  1. 《深入理解计算机系统》第八章——异常控制流知识点总结
  2. canvas 中的元素拖拽
  3. 洛谷 - P4755 Beautiful Pair(笛卡尔树+主席树)
  4. @RequiresPermissions 注解说明
  5. Android 4 学习(20):ActionBar
  6. HDOJ 1002 A + B Problem II 解题报告
  7. SCUT - 12 - 西方国家 - 矩阵快速幂
  8. vdbench - 性能压力测试工具
  9. ECharts地图省市县在对应地图的中心位置
  10. java概述及我的第一个java项目
  11. html超链接访问前颜色,html超链接颜色设置
  12. 从今往后,IBM的未来将交给一个印度裔老头儿
  13. 这些愚蠢的事 数据中心管理中要避免
  14. mysql sniffer 源码_MySQL 抓包工具 - MySQL Sniffer 使用小结 (含带general_log日志)
  15. (已解决)ModuleNotFoundError: No module named ‘pycocotools‘
  16. ft232 android,微雪电子FT232(mini)USB转USART简介
  17. asp毕业设计——基于asp+access的档案管理系统设计与实现(毕业论文+程序源码)——档案管理系统
  18. 《数字图像处理》学习笔记(四)--混合空间增强法(待修改)
  19. seo里的长尾关键词是什么
  20. Unity在商店或者Package Manager下载的Package的保存位置

热门文章

  1. vue样式中背景图片路径_vue打包css文件中背景图片的路径问题
  2. python多线程单核_002_Python多线程相当于单核多线程的论证
  3. 解决模拟MOSS用户调用WebService打开个人站点进行操作
  4. C++之Boost准标准库配置
  5. 简单的FreeBSD 的内核编译
  6. SQL查询优化《三》:少做重复的工作
  7. Netty源码学习(零)前言
  8. DetachedCriteria和Criteria的使用方法
  9. xhprof windows下安装和使用(转载)
  10. iOS开发-自动隐藏键盘及状态栏