队列
文章平均质量分 55
哈哈大师2017
笨鸟先飞
展开
-
从上往下打印二叉树C++
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。打印二叉树的有两种方式:深度优先遍历或者广度优先,这道题要求同层结点从左至右打印, 说明需要进行广度优先遍历,为了达到这个目的,我们需要借助数据结构:队列,不断将根结点、左孩子结点、友孩子结点push进入队列中,同时进行打印操作;具体细节见代码:/*struct TreeNode { int val; struct TreeNod...原创 2018-03-22 12:35:58 · 3399 阅读 · 2 评论 -
(剑指offer)二叉树的深度(递归与非递归版本)
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。一、递归版本;若存在左子树,则将左子树深度加1;若存在右子树,则将右子树深度加1;若左右子树均存在,则将左、右子树深度均加1取最大值;细节见代码:int TreeDepth(TreeNode* pRoot) { if (pRoot == NULL)...原创 2018-03-26 17:24:40 · 399 阅读 · 0 评论 -
(剑指offer)把二叉树打印成多行
题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。这道题与之前做的几道题的方法一致,借助队列数据结构,采用广度优先遍历的方法,将每一层的兄弟结点依次入队,再依次出出队列,这里需要一个标记记录每一层结点的数目,根据标记的值可以知道一层结点是否打印完毕;细节见代码:/*struct TreeNode { int val; struct TreeNode *lef...原创 2018-03-26 17:39:53 · 145 阅读 · 0 评论