[leetcode] 101. Symmetric Tree

boricat·2021년 11월 27일
0

leetcode

목록 보기
12/14

Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).

Input: root = [1,2,2,3,4,4,3]
Output: true

Input: root = [1,2,2,null,3,null,3]
Output: false

sol1


public boolean isSymmetric(TreeNode root) {
    
    return helper(root,root);
}

public boolean helper(TreeNode node1, TreeNode node2){
    if(node1 == null && node2 == null)
        return true;
    if(node1 != null && node2 != null && node1.val == node2.val)
        return helper(node1.left,node2.right) && helper(node1.right,node2.left);
    else
        return false;
}

root 노드를 기준으로 한칸씩 아래로 내려갈 때 마다

left, right 값이 일치하는지 체크한다.

중간에 한번이라도 일치하지 않으면 false

가장 마지막칸 까지 일치해야만 true

가장 마지막 노드의 다음 노드는 없으니 null 로 일치할 때 true 리턴

profile
newbie

1개의 댓글

comment-user-thumbnail
2021년 12월 18일

I found that solution is very popular and helpful : https://youtu.be/KIoM0FEZ0IA

답글 달기