Invert Binary Tree(두 갈래 트리 반전)
1730 단어 Leet Code 문제집
4
/ \
2 7
/ \ / \
1 3 6 9
to
4
/ \
7 2
/ \ / \
9 6 3 1
1. 개인적으로 이 문제를 분석한 것은 사실'검지Offer'에서 보았지만 책에서 말한 것은 거울 두 갈래 나무일 뿐이지만 그들의 본질은 같다. 뿌리 노드의 좌우 아이 노드를 두 냥으로 교환한 다음에 같은 방법으로 좌우 나무 처리를 하면 된다.
2. 개인 해법
TreeNode* invertTree(TreeNode* root) {
if(root == NULL)
return NULL;
if(root->left || root->right)
swap(root->left, root->right);
invertTree(root->left);
invertTree(root->right);
return root;
}
3. 반전 트리를 해결하는 관건은 좌우 노드를 교환하면 실현될 수 있다는 것을 알 수 있는지에 있다. 여기서 상술한 예시를 관찰 분석하여 이 결론을 얻을 수 있다.만약 제시된 제목이 실례를 제시하지 않는다면 우리 스스로 예를 들어 그림을 그려야 한다. 이것은 낯설고 복잡한 문제의 해결에 매우 중요하다.
PS: