1104. 二叉树寻路

在一棵无限的二叉树上,每个节点都有两个子节点,树中的节点 逐行 依次按 “之” 字形进行标记。

如下图所示,在奇数行(即,第一行、第三行、第五行……)中,按从左到右的顺序进行标记;

而偶数行(即,第二行、第四行、第六行……)中,按从右到左的顺序进行标记。

给你树上某一个节点的标号 label,请你返回从根节点到该标号为 label 节点的路径,该路径是由途经的节点标号所组成的。

示例 1:

输入:label = 14
输出:[1,3,4,14]
示例 2:

输入:label = 26
输出:[1,2,6,10,26]

解题思路

  1. 利用二叉树的性质,编号为n的子节点,父节点为n/2(因为n为int,所以才可以这样算),因此我们这题就是需要不断往上找父节点
  2. 因为树中的节点 逐行 依次按 “之” 字形进行标记,正常二叉树编号每一层从左到右的顺序进行标记,而偶数层在这题是相反的,但是我们可以把顺序的节点映射为反序来加入结果列表,因此我们这次只需要按正常完全二叉树的编号去寻找父节点,当遇到父节点在偶数层的时候,将节点映射为反序的加入结果列表。

代码

class Solution {public List<Integer> pathInZigZagTree(int label) {int i=0;while (Math.pow(2,i)<=label){i++;}List<Integer> list=new ArrayList<>();i--;if (i%2==1){label=3* (int) Math.pow(2,i)-1-label;}while (i>=0){list.add(i%2==1?3* (int) Math.pow(2,i)-1-label:label);label/=2;i--;}Collections.reverse(list);return list;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javascript 代码_如何开始对JavaScript代码进行单元测试

javascript 代码We all know we should write unit tests. But, its hard to know where to start and how much time to devote to tests compared to actual implementation. So, where to start? And is it just about testing code or do unit tests have other benefits?…

个人作业——软件工程实践总结作业

一、请回望暑假时的第一次作业&#xff0c;你对于软件工程课程的想象 1&#xff09;对比开篇博客你对课程目标和期待&#xff0c;“希望通过实践锻炼&#xff0c;增强计算机专业的能力和就业竞争力”&#xff0c;对比目前的所学所练所得&#xff0c;在哪些方面达到了你的期待和…

(转)在阿里,我们如何管理代码分支?

阿里妹导读&#xff1a;代码分支模式的选择并没有绝对的正确和错误之分&#xff0c;关键是与项目的规模和发布节奏相匹配。阿里协同研发平台在经过众多实践历练后&#xff0c;总结出了一套独创的分支管理方法&#xff1a;AoneFlow&#xff0c;通过兼备灵活高效与简单实用的流程…

WIN10系统 截图或者某些程序时屏幕会自动放大怎么办

右击这个应用程序&#xff0c;兼容性&#xff0c;以兼容模式运行&#xff0c;同时勾选高DPI设置时禁止显示缩放即可

css背景图片添加url_CSS背景图片–如何向您的Div添加图片URL

css背景图片添加urlSay you want to put an image or two on a webpage. One way is to use the background-image CSS property. 假设您要在网页上放置一两个图片。 一种方法是使用background-image CSS属性。 This property applies one or more background images to an el…

golang基础01

1.环境变量&#xff1a;go env//代码目录和第三方库文件set GOPATHC:\Users\hanxiaodong\go//go安装目录set GOROOTC:\Gopath里要配置&#xff1a;goroot/bin;和gopath/bin; gopath目录下三个文件夹&#xff1a;pkg&#xff1a;编译好的库文件 .a 文件bin&#xff1a;可执行文件…

hugo 能做web开发吗_如何自托管Hugo Web应用

hugo 能做web开发吗After hosting with Netlify for a few years, I decided to head back to self hosting. There are a few reasons for that, but the main reasoning was that I had more control over how things worked. 在Netlify托管了几年之后&#xff0c;我决定回到…

资源 | 深度学习课程入门与介绍

【1】Andrew NG Deep Learning.ai http://deeplearning.ai/网易云课堂&#xff08;中文字幕&#xff09;&#xff1a;http://mooc.study.163.com/smartSpec/detail/1001319001.htm推荐理由&#xff1a;Andrew Ng老师是讲课的能手&#xff0c;很多人认识他是从Stanford的经典《机…

PostCSS 以及 cssnext语法

本文是对近两天学习postcss的总结&#xff0c;在这里分享给大家。 如有错误&#xff0c;还请指正&#xff01; 什么是postcss postcss 一种对css编译的工具&#xff0c;类似babel对js的处理&#xff0c;常见的功能如&#xff1a; 1 . 使用下一代css语法 2 . 自动补全浏览器前缀…

5187. 收集足够苹果的最小花园周长

给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| |j| 个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 &#xff0c;且每条边都与两条坐标轴之一平行。 给你一个整数 neededApples &#xff0c…

虚拟机 VMware Workstation12 安装OS X 系统

Windows下虚拟机安装Mac OS X —– VMware Workstation12安装Mac OS X 10.11本文即将介绍WIN虚拟MAC的教程。完整详细教程&#xff08;包含安装中的一些问题&#xff09;【并且适用其他mac os x版本】Windows下 VM12虚拟机安装OS X 10.11(详细教程) 工具/原料 Mac OS X 10.11 镜…

aws dynamodb_DynamoDB备忘单–您需要了解的有关2020 AWS认证开发人员助理认证的Amazon Dynamo DB的所有信息

aws dynamodbThe emergence of cloud services has changed the way we build web-applications. This in turn has changed the responsibilities of a Web Developer. 云服务的出现改变了我们构建Web应用程序的方式。 反过来&#xff0c;这改变了Web开发人员的职责。 We use…

北大CIO走进龙泉寺交流研讨会圆满举行

缘起 2016年4月16日&#xff0c;北京大学信息化与信息管理研究中心秘书长姚乐博士与国家非物质文化遗产蔚县剪纸传承人周淑英女士一起在龙泉寺拜见了中国佛教协会会长、龙泉寺主持学诚法师。在拜见学诚法师时&#xff0c;姚乐博士与学诚法师聊到了“贤二机器僧”和人工智能。姚…

负载均衡种类

http://blog.csdn.net/zhoudaxia/article/details/23672319DNS DNS轮询是最简单的负载均衡方式。以域名作为访问入口&#xff0c;通过配置多条DNS A记录使得请求可以分配到不同的服务器。DNS轮询没有快速的健康检查机制&#xff0c;而且只支持WRR的调度策略导致负载很难“均衡”…

代码流星雨是什么形式_为什么要在2020年与流星合作

代码流星雨是什么形式Meteor, an allegedly dead development platform, is still alive and can bring massive value to your everyday coding experience.Meteor&#xff0c;据称已失效的开发平台&#xff0c;仍然有效&#xff0c;可以为您的日常编码体验带来巨大的价值。 …

Centos7 Docker私有仓库搭建

Centos7 Docker私有仓库搭建 仓库&#xff1a;集中存放镜像的地方&#xff0c;可分为公共仓库和私有仓库&#xff08;公共仓库"http://hub.docker.com"或国内的"http://www.daocloud.io"&#xff09; Registry&#xff1a;注册服务器才是存放仓库具体的服务…

MySQL触发器使用详解

MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象&#xff0c;当触发器所在表上出现指定事件时&#xff0c;将调用该对象&#xff0c;即表的操作事件触发表上的触发器的执行。 创建触发器在MySQL中&#xff0c;创建触发器语法如下&#xff1a; 代码如下: CREATE…

java中访问修饰符_Java中的访问修饰符介绍

java中访问修饰符什么是访问修饰符&#xff1f; (What are Access Modifiers?) Have you ever wanted to define how people would access some of your properties? You would not want anyone using your underwear. However, your close friends and relatives can use yo…

VIM 编辑器

2019独角兽企业重金招聘Python工程师标准>>> VIM 相对于VI 的提升 VIM 支持多级撤销VIM 可以跨平台运行VIM 支持语法高亮VIM 支持图形界面VIM 编辑器的操作模式 Command Mode -命令模式Insert Mode -输入模式Last Lin Mode -底行模式#使用yum 命令安装vim 软件&…

/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件的作用

转载自&#xff1a;http://blog.csdn.net/u013968345/article/details/21262033 /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个运行bash shell的用户执行此文件…