검지offer19.두 갈래 나무의 거울
제목 설명
주어진 두 갈래 트리를 조작하여 원본 두 갈래 트리의 거울로 변환합니다.
설명 입력:
:
8
/ \
6 10
/ \ / \
5 7 9 11
8
/ \
10 6
/ \ / \
11 9 7 5
생각:
앞의 순서를 두루 돌아다니며 매번 노드의 좌우 트리를 교환한다.즉, 노드의 좌우 트리를 먼저 교환해야만 계속 훑어볼 수 있다.
참고 사항:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
#
def Mirror(self, root):
# write code here
if not root:
return
root.left, root.right = root.right, root.left
self.Mirror(root.left)
self.Mirror(root.right)
C++ Version:
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
void Mirror(TreeNode *pRoot) {
if (pRoot == NULL){
return;
}
TreeNode * node = pRoot->left;
pRoot->left = pRoot->right;
pRoot->right = node;
Mirror(pRoot->left);
Mirror(pRoot->right);
}
};
Note
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.