검지 offer----두 갈래 나무의 거울(두 갈래 나무 반전)
주어진 두 갈래 트리를 조작하여 원본 두 갈래 트리의 거울로 변환합니다.
:
8
/ \
6 10
/ \ / \
5 7 9 11
8
/ \
10 6
/ \ / \
11 9 7 5
2. 생각
트리의 모든 노드의 좌우 하위 노드를 교환하면 트리의 거울을 얻을 수 있습니다.
한 그루의 나무의 거울을 구하는 과정: 이전에 이 나무의 모든 노드를 두루 훑어보았는데 만약에 훑어본 노드가 하위 노드가 있다면 그 좌우 두 개의 하위 노드를 교환하고 모든 비엽 노드의 왼쪽, 오른쪽 노드를 교환한 후에 나무의 거울을 얻는다.
2. 코드는 다음과 같습니다.
/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public void Mirror(TreeNode root) { if(root == null){ return; } if(root.left==null && root.right==null){ return; } TreeNode temp = null; temp = root.left; root.left = root.right; root.right = temp; if(root.left != null){ Mirror(root.left); } if(root.right != null){ Mirror(root.right); } }}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.