LeetCode: Increasing Order Search Tree
문제 풀이
이진 트리를 탐색하면서 오름차순으로 되어 있는 트리를 만들어서 return하는 문제이다.
중위순회를 통해 오름차순된 node들을 얻을 수 있다.
import java.util.*;
class Solution {
public TreeNode increasingBST(TreeNode root) {
Stack<TreeNode> s = new Stack<>();
TreeNode answer = null;
TreeNode cur = null;
s.add(root);
while(!s.isEmpty()) {
TreeNode temp = s.pop();
if(temp.left != null) {
TreeNode next = temp.left;
temp.left = null;
s.add(temp);
s.add(next);
continue;
}
if(answer == null) {
answer = new TreeNode(temp.val);
cur = answer;
}
else {
cur.right = new TreeNode(temp.val);
cur = cur.right;
}
if(temp.right != null) {
TreeNode next = temp.right;
temp.right = null;
s.add(next);
}
}
return answer;
}
}
Author And Source
이 문제에 관하여(LeetCode: Increasing Order Search Tree), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wonhee010/LeetCode-Increasing-Order-Search-Tree저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)