| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 
 | class Solution {List<Integer> ans = new ArrayList<>();
 public List<Integer> pathInZigZagTree(int label) {
 
 int n = 1;
 int x = label;
 while (x / 2 != 0) {
 x = x / 2;
 n++;
 }
 
 int tmp = label;
 while (n > 0) {
 ans.add(tmp);
 int max = (int)Math.pow(2, n) - 1;
 int min = (int)Math.pow(2, n - 1);
 if (n % 2 == 0) {
 
 while (max != tmp) {
 max--;
 min++;
 }
 
 
 tmp = min / 2;
 }else {
 
 while (min != tmp) {
 max--;
 min++;
 }
 
 tmp = max / 2;
 }
 n--;
 }
 Collections.sort(ans);
 return ans;
 }
 }
 
 
 |