검지 27 두 갈래 나무의 거울

3195 단어
함수를 완성하고 두 갈래 트리를 입력하십시오. 이 함수는 거울을 출력합니다.
예를 들어 입력:
4/\2 7/\/\1 3 6 9 미러 출력:
     4   / \  7     2 /\ /\9   6 3   1
 
예 1:
입력: root = [4, 2, 7, 1, 3, 6, 9] 출력: [4, 7, 2, 9, 6, 3, 1]
 
관건은 두 갈래 나무의 거울을 발견하는 데 있다. 사실은 좌우 나무를 교환하여 달성할 수 있다. 귀속적인 방법으로 먼저 좌우 나무의 거울을 완성한 다음에 좌우 나무를 교환할 수 있다.
 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     TreeNode *left;
 6  *     TreeNode *right;
 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 8  * };
 9  */
10 class Solution {
11 public:
12     TreeNode* mirrorTree(TreeNode* root) {
13         return recursive_exchange(root);
14     }
15 
16     TreeNode* recursive_exchange(TreeNode* cur){
17         if(cur==nullptr)
18             return nullptr;
19         cur->left=recursive_exchange(cur->left);
20         cur->right=recursive_exchange(cur->right);
21         TreeNode* temp=cur->left;
22         cur->left=cur->right;
23         cur->right=temp;
24         return cur;
25     }
26 };

좋은 웹페이지 즐겨찾기