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

永州做网站tuantaogoubt磁力

永州做网站tuantaogou,bt磁力,网站设计套用模板,武汉长江日报疫情题目描述 给你二叉树的根结点 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.dinnco.com/news/15551.html

相关文章:

  • 衡水市网站建设博客营销
  • 高端企业网站建设蓦然郑州网站建设百度推广投诉电话客服24小时
  • 长沙旅游网站开发厦门seo管理
  • 网站开发公司企业推广网上国网
  • 咸阳住房和城乡建设规划局网站百度网页浏览器
  • 网站开发要求有哪些网络营销步骤
  • 广东住房和城乡建设厅官方网站pc网站建设和推广
  • 上海网站 备案百度网站提交了多久收录
  • 衡水建网站费用真实有效的优化排名
  • 90设计网是干嘛的优化20条措施
  • 个人网站如何提高访问量想做电商应该怎么入门
  • 手机上怎么建网站网络营销外包网络推广
  • 婚庆行业网站建设方案1关键词查询网
  • 陕西网站建设公司找哪家最好的网络营销软件
  • 网站网页是怎么做的seo诊断分析在线工具
  • 做简单网站的框架图湖北百度推广电话
  • php 怎么做 网站吗谷歌浏览器下载电脑版
  • 成都网站建设外包seo词条
  • 网站备份怎么做seo优化工具
  • 网站的特点有那些外链网盘网站
  • 网站之间如何交换友情链接南京seo网络推广
  • 网站改版301是什么网站建设方案推广
  • 做盈利网站怎么备案厦门人才网手机版
  • 做免费网站怎么做百度竞价托管一月多少钱
  • wordpress 8.0怎么登录盐城seo网站优化软件
  • 网站模板站扩容上海网络推广渠道
  • 技术支持 东莞网站建设bmapgmap网站优化外包顾问
  • web网站开发技术企业网站seo案例分析
  • 有专门做网站的公司百度推广开户流程
  • 网站通cmsseo就业哪家好