[LeetCode] 897. Increasing Order Search Tree [미완성]

PADO·2020년 12월 3일
0

알고리즘

목록 보기
15/15
post-thumbnail

897. Increasing Order Search Tree

문제 링크: https://leetcode.com/problems/increasing-order-search-tree/

스크린샷 2020-12-03 오후 8 16 02

아래와 같은 TreeNode로 구성된 Binary Search Tree를 in-order로 정렬된 오른쪽 자식만 있는 트리로 변형하는 문제이다.

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;
	}
}

Binary Search Tree가 주어졌으니 그냥 inorder traversal로 순회하면서 루트 값으로 새로운 트리를 만들어주면 된다.

잘못 작성한 코드

class Solution {
    public void InorderTraversal(TreeNode result, TreeNode root) {
        if(root.left != null) InorderTraversal(result, root.left);
        result.right = new TreeNode();
        result = result.right;
        result.val = root.val;
        if(root.right != null) InorderTraversal(result, root.right);
    }
    public TreeNode increasingBST(TreeNode root) {
        if(root == null) return null;
        TreeNode increasingSearchTree = new TreeNode();
        TreeNode result = increasingSearchTree;
        InorderTraversal(result, root);
        
        return increasingSearchTree.right;
    }
}

in-order로 잘 순회하고 있었으나 ~~~ 해서 아래와 같은 결과를 반환하고 있었다.
포인터를 잘못 쓰고 있는 것 같은데 .. ㅡㅡ
스크린샷 2020-12-03 오후 8 20 02

Solution

0개의 댓글

Powered by GraphCDN, the GraphQL CDN