[검지 Offer] 27 두 갈래 나무의 거울
1153 단어 알고리즘 문제
제목:
함수를 완성하고 두 갈래 트리를 입력하십시오. 이 함수는 거울을 출력합니다.
예를 들어 입력:
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. 보조 창고
/**
* 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;
Stack stack=new Stack();
stack.add(root);
while(!stack.isEmpty()){
TreeNode node=stack.pop();
if(node.left!=null)stack.add(node.left);
if(node.right!=null)stack.add(node.right);
TreeNode temp=node.left;
node.left=node.right;
node.right=temp;
}
return root;
}
}
노드를 창고에 넣고 왜 교환해야 합니까?
노드를 넣은 후에 튀어나오는 것은 교환된 것이다. 이런 식으로 노드가 다음에 창고에 들어가는 것은 좌우 노드를 교환한 후의 순서와 같다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[못 푼 문제] 백준 10989번sys.stdin.readline()을 사용하여 input의 시간을 줄였다. 또한 입력 가능한 수의 개수가 10,000,000개 이고 최대 입력 가능한 수가 10,000이기 때문에 모든 수를 입력 받아 리스트로 만들...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.