Skip to content

Files

Latest commit

Jun 3, 2025
dc05028 · Jun 3, 2025

History

History
70 lines (47 loc) · 2.09 KB

1104-path-in-zigzag-labelled-binary-tree.adoc

File metadata and controls

70 lines (47 loc) · 2.09 KB

1104. 二叉树寻路

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

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

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

{image_attr}

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= label <= 106

思路分析

找到每一层的左右端点的值,确认所求数值在本层中的下标(从 1 开始),开始循环,每次循环下标都除以 2 再向上取整。这样就可以获取每个数值对应的节点。

看官方题解,每层两端的数值都可以从当前层数获取,不需要单独存储。

一刷
link:{sourcedir}/_1104_PathInZigzagLabelledBinaryTree.java[role=include]