Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 994 Bytes

Question_1104.md

File metadata and controls

39 lines (33 loc) · 994 Bytes

LeetCode Records - Question 1104 Path In Zigzag Labelled Binary Tree

Attempt 1: Use an ArrayList to store the end number of each row

class Solution {
    public List<Integer> pathInZigZagTree(int label) {
        List<Integer> list = new ArrayList<>();
        int i = 2;
        while (i <= label) {
            list.add(i - 1);
            i *= 2;
        }
        list.add(i - 1);

        boolean isReversed = false;
        List<Integer> ans = new ArrayList<>();
        while (label > 0) {
            int end = list.removeLast();

            if (isReversed) {
                int start = (end + 1) / 2;
                int diff = label - start;
                ans.addFirst(end - diff);
            } else {
                ans.addFirst(label);
            }
            
            label /= 2;
            isReversed = !isReversed;
        }

        return ans;
    }
}
  • Runtime: 0 ms (Beats: 100.00%)
  • Memory: 40.74 MB (Beats: 81.25%)