Leetcode Java Convert BST to Greater Tree
업데이트:
문제
코드
class Solution {
private int sum = 0;
public TreeNode convertBST(TreeNode root) {
if (root != null) {
this.convertBST(root.right);
sum += root.val;
root.val = sum;
this.convertBST(root.left);
}
return root;
}
}
결과
설명
- BST(Binary Search Tree)인 root를 이용하여 Greater Tree로 변환하는 문제이다.
- Greater Tree는 BST의 가장 큰 값(오른쪽 맨 하위 노드)부터 작은 값(왼쪽 맨 하위 노드)까지 순차적인 합을 각 노드의 값으로 가진 TreeNode이다.
-
현재 위치의 합을 넣을 sum을 0으로 초기화한다.
- root가 null이 아니면 아래를 수행한다.
- root의 right TreeNode를 이용하여 재귀 호출을 수행한다.
- sum에 root의 val 값을 더해주고, root의 val에 sum을 넣어준다.
- root의 left TreeNode를 이용하여 재귀 호출을 수행한다.
- 수행이 완료되면 root를 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기