当前位置: 首页 > news >正文

重庆市建设节能中心网站如何制作微信公众号微商城

重庆市建设节能中心网站,如何制作微信公众号微商城,平面设计培训平台,私人20服务器题目描述 给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言,其左右子结点分别位于 (row 1, col - 1) 和 (row 1, col 1) 。树的根结点位于 (0, 0) 。 二叉树的 垂序遍历 从最左边的列开始直到…

题目描述

给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。

对位于 (row, col) 的每个结点而言,其左右子结点分别位于 (row + 1, col - 1) 和 (row + 1, col + 1) 。树的根结点位于 (0, 0) 。

二叉树的 垂序遍历 从最左边的列开始直到最右边的列结束,按列索引每一列上的所有结点,形成一个按出现位置从上到下排序的有序列表。如果同行同列上有多个结点,则按结点的值从小到大进行排序。

返回二叉树的 垂序遍历 序列。

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[[9],[3,15],[20],[7]]
解释:
列 -1 :只有结点 9 在此列中。
列  0 :只有结点 3 和 15 在此列中,按从上到下顺序。
列  1 :只有结点 20 在此列中。
列  2 :只有结点 7 在此列中。

示例 2:

输入:root = [1,2,3,4,5,6,7]
输出:[[4],[2],[1,5,6],[3],[7]]
解释:
列 -2 :只有结点 4 在此列中。
列 -1 :只有结点 2 在此列中。
列  0 :结点 1 、5 和 6 都在此列中。1 在上面,所以它出现在前面。5 和 6 位置都是 (2, 0) ,所以按值从小到大排序,5 在 6 的前面。
列  1 :只有结点 3 在此列中。
列  2 :只有结点 7 在此列中。

987. 二叉树的垂序遍历

解题思路

首先本题是一道困难题,其解决方法并不难想,主要难度主要集中在实现的细节。对于相同列的排序,行小的在前,同行的按照从大到小排序,所以这个实现我想到了java的排序器,制定类的规则。这个问题想好就按照dfs进行一次遍历,主要记录行列,将同列的放入同一个List从而进行排序,整体实现思路并不复杂,主要需要看清楚题意并认真实现。

具体实现,代码如下

class Solution {public List<List<Integer>> verticalTraversal(TreeNode root) {Map<Integer, List<Node>> map = new HashMap<>();List<List<Integer>> lists = new ArrayList<>();List<Integer> list = new ArrayList<>();dfs(0, 0, root, map, list);Collections.sort(list);//进行排序for (int i : list) {Collections.sort(map.get(i));List<Integer> l = new ArrayList<>();for (Node n : map.get(i))l.add(n.val);lists.add(l);}return lists;}public void dfs(int c, int r, TreeNode p, Map<Integer, List<Node>> map, List<Integer> list) {if (p != null) {if (!map.containsKey(c)) {list.add(c);map.put(c, new ArrayList<Node>());}map.get(c).add(new Node(r, p.val));dfs(c - 1, r + 1, p.left, map, list);dfs(c + 1, r + 1, p.right, map, list);}}
}class Node implements Comparable<Node> {int r;int val;Node(int r, int val) {this.r = r;this.val = val;}public int compareTo(Node o) {//排序器if (this.r > o.r) {return 1;} else if (this.r < o.r) {return -1;} else {if (this.val > o.val)return 1;else if (this.val < o.val)return -1;elsereturn 0;}}
}
http://www.yayakq.cn/news/935072/

相关文章:

  • 中国城乡建中国城乡建设部网站杭州做网站公司
  • 合肥做网站加盟wordpress 换头像
  • 好多职业培训网站是怎么做的美发营销型网站
  • wordpress 下载网站模板网站的流程
  • 网站开发后台能用c语言吗做脚垫版型的网站
  • 个人备案做公司网站wordpress安装 简书
  • 怎么原创视频网站企业关键词优化价格
  • 天河怎样优化网站建设icp备案号怎么查询
  • 保安公司的网站设计比较好的英文网站模板改成中文
  • 上海正规网站建设网站平台建设需求的意见
  • 合肥珍岛公司做网站推广怎么样电子商务网站基本功能
  • 广州建设交易中心网站首页建设应用型网站的意义
  • 佛山新网站建设机构登封网站建设
  • 紫色个人网站模板海报设计说明万能模板
  • 做网站的思路怎么写企业网站建设费用怎么核算
  • 建一个网站大概多少钱承德建设企业网站
  • 有什么做外贸的网站怎么做免费的网站推广
  • 游戏开发难还是网站开发难中国城乡建设局和住建局官网
  • 好的模板网站漳州本地新闻头条
  • 网站每天1万ip能收入多少wordpress 批量导入用户名
  • 网址域名注册阿里云优化关键词步骤
  • dw做旅游网站毕业设计模板下载政务网站集约化建设难点与建议
  • 网站建设询价公告吉林省白山市建设厅网站首页
  • 北海哪里做网站制作旅游网站网页的代码
  • 找网络公司建网站的流程永久免费网站系统
  • 山东省建设厅网站 - 百度房地产型网站建设
  • 烟台做网站系统wordpress开发微商分销系统
  • 网站如何做好内链网站自然排名
  • 五星级酒店网站建设学院门户网站建设必要性
  • 鲅鱼圈网站怎么做设计服务网络建设方案