리트코드 100

var isSameTree = function(p, q) {
    if (!p && !q) return true;
    if ((!p && q) || (p && !q)) return false;
    if (p.val !== q.val) return false;
    if ((!p.left && q.left) || (p.left && !q.left)) return false;
    if ((!p.right && q.right) || (p.right && !q.right)) return false;
    
    return (isSameTree(p.left, q.left) && isSameTree(p.right, q.right)); 
};

재귀함수를 써야겠다는 생각은 바로 들었다. 그런데 조건을 추가하는게 생각보다 까다로웠다. 리트코드의 특징이 테스트 케이스들을 보여주다 보니, 문제를 풀다보면 조금 끼워 맞추려고 하는 경향이 생기는 것 같다. 그래도 리트코드 특유의 미리 선언해놓고 활용하는 문제에 조금씩 적응해 나가고 있다.

좋은 웹페이지 즐겨찾기