면접 문제두 갈래 나무의 거울

7282 단어 검지offerLeetCode

제목


함수를 완성하고 두 갈래 트리를 입력하십시오. 이 함수는 거울을 출력합니다.
예를 들어 입력:
     4
   /   \
  2     7
 / \   / \
1   3 6   9

대칭복사 출력:
     4
   /   \
  7     2
 / \   / \
9   6 3   1

예제

 :root = [4,2,7,1,3,6,9][4,7,2,9,6,3,1]

코드

  • 귀속법은 한 나무에 대해 우리가 귀속 역행(DFS) 과정에서 뿌리 노드의 좌우 자노드를 교환하면 이 나무의 거울을 얻을 수 있다
  •      4              4              4
       /   \          /   \          /   \
      2     7   ==>  7     2   ==>  7     2
     / \   / \      / \   / \      / \   / \
    1   3 6   9    6   9 1   3    9   6 3   1
    
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public TreeNode mirrorTree(TreeNode root) {
            if (root == null) {
                return null;
            }
            // 
            TreeNode temp = root.left;
            root.left = mirrorTree(root.right);
            root.right = mirrorTree(temp);
            return root;
        }
    }
    
  • 보조창고
  • /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public TreeNode mirrorTree(TreeNode root) {
            if (root == null) {
                return null;
            }
            Deque<TreeNode> queue = new ArrayDeque<>();
            queue.addLast(root);
            while (queue.size() != 0) {
                TreeNode node = queue.removeLast();
                if (node.left != null) {
                    queue.addLast(node.left);
                }
                if (node.right != null) {
                    queue.addLast(node.right);
                }
                TreeNode temp = node.left;
                node.left = node.right;
                node.right = temp;
            }
            return root;
            
        }
    }
    

    출처: 리코드(LeetCode) 링크:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof

    좋은 웹페이지 즐겨찾기