剑指 Offer 32 - III. 从上到下打印二叉树 III 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 例如: 给定二叉树: [3,9,20,null,null,15,7], 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [20,9], [15,7] ] 提示: 节点总数 <= 1000 一…
剑指 Offer 32 - I. 从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3,9,20,15,7] 提示: 节点总数 <= 1000 做题思路:这道题,与剑指 Offer 32 - II. 从上到下打印二叉树 II有点类似,可以相互参考,尤其是BFS的代码有点模板的感觉. /** * Definition for a bina…
剑指 Offer 32 - III. 从上到下打印二叉树 III Offer_32_3 题目详情 题解分析 本题我想的比较复杂,其实题目的要求只是需要遍历的结果逆序和正序交替,这个其实可以使用Collections工具类的reverse函数来实现. 这里我根据偶数层和奇数层改变了遍历的顺序,相对较复杂. package com.walegarrett.offer; import java.util.*; /** * @Author WaleGarrett * @Date 2021/2/1 15:…
剑指 Offer 32 - I. 从上到下打印二叉树 Offer_32_1 题目描述 解题思路 这题属于简单题,考察的是我们对二叉树以及层次遍历的方法. 这里只需要使用简单的队列即可完成二叉树的层次遍历. 此外,由于这道题需要返回一个定长数组,但是我一时没有找到合适的将Integer转换为int的方法,所以使用遍历list的方式取出原来的元素放在数组中. package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2…
题目信息 时间: 2019-06-25 题目链接:Leetcode tag:BFS(广度优先搜索) 队列 难易程度:中等 题目描述: 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 示例1: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回:[3,9,20,15,7] 提示 1.节点数量 <= 1000 解题思路 本题难点 二叉树的 从上至下 打印(即按层打印),又称为二叉树的 广度优先搜索(BFS). 具体思路…
题目信息 时间: 2019-06-25 题目链接:Leetcode tag:双端队列 难易程度:中等 题目描述: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 示例1: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [20,9], [15,7] ] 提示 1.节点总数 <= 1000 解题思路 本题…
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 按照从左往右从上到下的顺序打印节点,需要我们维护一个队列,这个队列放入元素的顺序是访问队头节点(起始先放入根节点),则若当前节点的左右子树非空,则将左右子节点依次放入队尾,对所有节点执行此操作,然后按顺序遍历队列. C++代码实现: /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) :…
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行.   题解: 使用BFS,按层打印即可 class Solution { public: vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int>>res; BFS(pRoot, res); return res; } void BFS(TreeNode *root, vector<vector<int…
题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入图4.5中 的二叉树,则依次打印出8.6.10.5.7.9.11二叉树结点的定义如下: struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight; }; 我们以如下二叉树为例: / \ / \ / \ 这道题实际上二叉树层次遍历方法: 解题步骤如下: 1.设置一个deque双端队列,将根节点加入队列…
题目一 剑指 Offer 32 - I. 从上到下打印二叉树 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/ 1.描述 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 2.示例 示例 1: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3,9,20,15,7] 解法一…