이진 트리의 역 홀수 수준

완벽한 이진 트리의 루트가 주어지면 트리의 각 홀수 수준에서 노드 값을 뒤집습니다.

예를 들어 레벨 3의 노드 값이 [2,1,3,4,7,11,29,18]이라고 가정하면 [18,29,11,7,4,3,1,2]가 되어야 합니다. .
반전된 트리의 루트를 반환합니다.

모든 상위 노드에 두 개의 하위 노드가 있고 모든 잎이 동일한 수준에 있는 경우 이진 트리가 완벽합니다.

노드의 레벨은 노드와 루트 노드 사이의 경로를 따라 있는 에지의 수입니다.

class Solution {

    public void revOdd(TreeNode root1, TreeNode root2, int level){
        if((root1.left == null && root1.right == null) || (root2.left == null && root2.right == null)) return;

        if(level % 2 == 0){
            int temp = root1.left.val;
            root1.left.val = root2.right.val;
            root2.right.val = temp;
        }

        revOdd(root1.left, root2.right, level+1);
        revOdd(root1.right, root2.left, level+1);

    }

    public TreeNode reverseOddLevels(TreeNode root) {
        revOdd(root, root, 0);
        return root;
    }
}


좋은 웹페이지 즐겨찾기