Invert Binary Tree
0. 이번 달 목표
- 4월달부터 알고리즘을 시작했습니다.
- 5월달에는 4월달만큼, 열심히 하지 않았습니다.
- 열심히 하지 않았으니까, 앞으로도 열심히 하지 않을 것 같으니 6월달 목표는 하루 1문제 푸는 것만을 목표로 합니다.
1. 알고리즘을 해결하기 위해서 생각한 방법
- node.left와 node.right를 바꿈
- explore(node.left), explore(node.right)를 통해서 left가 head가 되고, right가 head가 되는 재귀함수를 만든다.
2. 알고리즘 작성 중, 어려운 점 & 깨달은 점
- 없음
3. 내가 작성한 알고리즘
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public TreeNode invertTree(TreeNode root) {
TreeNode answer = explore(root);
return answer;
}
private TreeNode explore(TreeNode root){
if(root == null){
return null;
}
TreeNode temp = root.right;
root.right = root.left;
root.left = temp;
explore(root.left);
explore(root.right);
return root;
}
}
4. 결과
'내 맘대로 알고리즘 > LeetCode 2020 June' 카테고리의 다른 글
June LeetCoding Challenge[Day2] - Delete Node in a Linked List (0) | 2020.06.02 |
---|