链接: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.二叉树的垂直遍历相关推荐

  1. LeetCode 314. 二叉树的垂直遍历(BFS/DFS)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 BFS 1. 题目 给定一个二叉树,返回其结点 垂直方向(从上到下,逐列)遍历的值. 如果两个结点在同一行和列,那么顺序则为 从左到右. 示例 ...

  2. 二叉树垂直遍历 java_【004】二叉树垂直遍历

    二叉树垂直遍历 题目描述 输入输出 示例输入 实例输出 DFS BFS 更简单的方法 二叉树垂直遍历 题目描述 对于一个二叉树,输出它的垂直遍历结果:对于同一列的节点,按照从左向右,从上向下的顺序排列 ...

  3. 关于二叉树的层次遍历的花样(c++实现)

    花样变形1::二叉树层次遍历但是分层打印 分析:与普通打印多了一个分层打印,其实只要在在层次遍历中多设置一个标记变量即可 代码如下: //二叉树的层次遍历 void levelTravel(BTNod ...

  4. python二叉树遍历算法_分享python实现的二叉树定义与遍历

    这篇文章主要介绍了python实现的二叉树定义与遍历算法,结合具体实例形式分析了基于Python定义的二叉树及其常用遍历操作实现技巧,需要的朋友可以参考下 本文实例讲述了python实现的二叉树定义与 ...

  5. leetcode-102 二叉树的层次遍历

    给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回其层 ...

  6. 二叉树的层次遍历 II

    给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 3/ \9 20/ \15 ...

  7. LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium

    题目:Binary Tree Preorder Traversal 二叉树的前序遍历,同样使用栈来解,代码如下: 1 struct TreeNode { 2 int val; 3 TreeNode* ...

  8. 根据二叉树的前序遍历和中序遍历重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  9. 刻意练习:LeetCode实战 -- 二叉树的前序遍历

    背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...

最新文章

  1. java XmlDocument
  2. gson 转换 ListMap 注意事项
  3. 安卓入门系列-08四大组件之Activity
  4. R语言观察日志(part6)--初识rMarkdown
  5. python input 与raw_input函数的区别
  6. 图片垂直居中的CSS技巧
  7. 【ABAP系列】SAP ABAP 宏的简单使用
  8. 理解思科IPS系统的traffic flow notifications
  9. azure api 管理_Azure Cosmos DB和MongoDB API入门
  10. python apply函数取数据中的后四位_python 实现rolling和apply函数的向下取值操作
  11. CVE-2020-10148: SolarWinds 远程代码执行漏洞通告
  12. 计算机动画设计论文,计算机动画设计论文.docx
  13. SharpDevelop安装与配置
  14. 怎么把PDF文件拆分,PDF拆分软件怎么操作
  15. 虾皮广告投放优化策略有哪些?
  16. 无内鬼来点干货,银行java开发面试题(含答案)
  17. 关于励志的名人名言----做人的名言
  18. 7-36 sdut-循环-1-求倒数之和 (10 分)
  19. 网络测速插件speedtest
  20. 【原创】】巴鲁夫 IO-Link模块的使用方法

热门文章

  1. 原生js双向数据绑定
  2. ios UICollectionViewLayout 横向瀑布流
  3. 为什么我会反对大家写工作日报
  4. SpringMVC ------使用POJO对象绑定请求参数值
  5. 第十三周项目1-数组大折腾(一)
  6. bzoj 2761 平衡树
  7. 【解决方案】jquery live的change事件在IE下失效
  8. python安装完毕后,提示找不到ssl模块的解决步骤
  9. [译]Windows 服务用户帐户
  10. 动态规划(四)--最长公共子序列