题目一:
题目描述:leetcode 1104 原题
方法一代码如下:
class Solution {
public List<Integer> pathInZigZagTree(int label) {
List<Integer> list = new ArrayList<Integer>();//存放途径的点
int n = (int)(Math.log(label)/Math.log(2));//计算出label所在层的上一层
while(label>1){
list.add(label);
int x = (int)(3*Math.pow(2,n-1)-1-label/2);
n--;
label = x;
}
list.add(1);
Collections.reverse(list);
return list;
}
}
方法二:
/*
解析:比如输入label=14,则输出1->3->4->14;举例14/2=7,7和4是对称,11/2=5,5和6是对称,6/2=3,3和2是对成
转换思路:14和9是对称,14/2=7和9/2=4是对称;11和12是对称,11/2=5和12/2=6也