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
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 리턴
I found that solution is very popular and helpful : https://youtu.be/KIoM0FEZ0IA