[LeetCode] 101. Symmetric Tree (Easy)
문제로 정답 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 구현을 못해서 힌트 받고 품 /** * Definition for a binary tree node. * 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; * } * } */ class Solution { public boolean isSymmetric(TreeNode root) { return checkSymmetric(root.left, root.right); } boolean checkSymmetric(TreeNode left, TreeNode right){ if(left == null && right != null) return false; if(right == null && left != null) return false; if(right == null && left == null) return true; if(left.val != right.val) return false; if(checkSymmetric(left.left, right.right) == false) return false; if(checkSymmetric(left.right, right.left) == false) return false; return true; } } 타인의 답 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Solution { public boolean isSymmetric(TreeNode root) { if (root == null) { return true; } return isMirror(root.left, root.right); } private boolean isMirror(TreeNode node1, TreeNode node2) { if (node1 == null && node2 == null) { return true; } if (node1 == null || node2 == null) { return false; } return node1.val == node2.val && isMirror(node1.left, node2.right) && isMirror(node1.right, node2.left); } }