314.二叉树的垂直遍历
链接:https://www.jiuzhang.com/solutions/binary-tree-vertical-order-traversal/
题解:
/*** Definition of TreeNode:* class TreeNode {* public:* int val;* TreeNode *left, *right;* TreeNode(int val) {* this->val = val;* this->left = this->right = NULL;* }* }*/class Solution {
public:/*** @param root: the root of tree* @return: the vertical order traversal*/vector<vector<int>> verticalOrder(TreeNode * root) {// write your code herevector<vector<int>> result;if (!root) {return result;}std::map<int, std::vector<int>> table;queue<std::pair<int, TreeNode*>> que;que.push(std::pair<int, TreeNode*>(0, root));table[0].push_back(root->val);while (!que.empty()) {auto entry = que.front();que.pop();if (entry.second->left) {que.push(std::pair<int, TreeNode*>(entry.first-1, entry.second->left));table[entry.first-1].push_back(entry.second->left->val);}if (entry.second->right) {que.push(std::pair<int, TreeNode*>(entry.first+1, entry.second->right));table[entry.first+1].push_back(entry.second->right->val);}}for (auto entry : table) {result.push_back(entry.second);}return result;}
};
314.二叉树的垂直遍历相关推荐
- LeetCode 314. 二叉树的垂直遍历(BFS/DFS)
文章目录 1. 题目 2. 解题 2.1 DFS 2.2 BFS 1. 题目 给定一个二叉树,返回其结点 垂直方向(从上到下,逐列)遍历的值. 如果两个结点在同一行和列,那么顺序则为 从左到右. 示例 ...
- 二叉树垂直遍历 java_【004】二叉树垂直遍历
二叉树垂直遍历 题目描述 输入输出 示例输入 实例输出 DFS BFS 更简单的方法 二叉树垂直遍历 题目描述 对于一个二叉树,输出它的垂直遍历结果:对于同一列的节点,按照从左向右,从上向下的顺序排列 ...
- 关于二叉树的层次遍历的花样(c++实现)
花样变形1::二叉树层次遍历但是分层打印 分析:与普通打印多了一个分层打印,其实只要在在层次遍历中多设置一个标记变量即可 代码如下: //二叉树的层次遍历 void levelTravel(BTNod ...
- python二叉树遍历算法_分享python实现的二叉树定义与遍历
这篇文章主要介绍了python实现的二叉树定义与遍历算法,结合具体实例形式分析了基于Python定义的二叉树及其常用遍历操作实现技巧,需要的朋友可以参考下 本文实例讲述了python实现的二叉树定义与 ...
- leetcode-102 二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回其层 ...
- 二叉树的层次遍历 II
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 3/ \9 20/ \15 ...
- LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium
题目:Binary Tree Preorder Traversal 二叉树的前序遍历,同样使用栈来解,代码如下: 1 struct TreeNode { 2 int val; 3 TreeNode* ...
- 根据二叉树的前序遍历和中序遍历重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- 刻意练习:LeetCode实战 -- 二叉树的前序遍历
背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...
最新文章
- java XmlDocument
- gson 转换 ListMap 注意事项
- 安卓入门系列-08四大组件之Activity
- R语言观察日志(part6)--初识rMarkdown
- python input 与raw_input函数的区别
- 图片垂直居中的CSS技巧
- 【ABAP系列】SAP ABAP 宏的简单使用
- 理解思科IPS系统的traffic flow notifications
- azure api 管理_Azure Cosmos DB和MongoDB API入门
- python apply函数取数据中的后四位_python 实现rolling和apply函数的向下取值操作
- CVE-2020-10148: SolarWinds 远程代码执行漏洞通告
- 计算机动画设计论文,计算机动画设计论文.docx
- SharpDevelop安装与配置
- 怎么把PDF文件拆分,PDF拆分软件怎么操作
- 虾皮广告投放优化策略有哪些?
- 无内鬼来点干货,银行java开发面试题(含答案)
- 关于励志的名人名言----做人的名言
- 7-36 sdut-循环-1-求倒数之和 (10 分)
- 网络测速插件speedtest
- 【原创】】巴鲁夫 IO-Link模块的使用方法