https://leetcode.com/problems/symmetric-tree/
/**
* 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 check(root, root);
}
public boolean check(TreeNode leftNode, TreeNode rightNode) {
if(leftNode == null && rightNode == null) { // 둘다 자식node가 없으면 true
return true;
}
if(leftNode == null || rightNode == null) { // 한쪽만 자식node가 없으면 false
return false;
}
if(leftNode.val != rightNode.val) { // 값이 서로 다르면 false
return false;
}
// 내려가면서 계속 확인
return check(leftNode.left, rightNode.right) && check(leftNode.right, rightNode.left);
}
}
'JAVA > leetcode' 카테고리의 다른 글
[LeetCode] Maximum Depth of Binary Tree (0) | 2021.08.11 |
---|---|
[LeetCode] Binary Tree Level Order Traversal - LevelOrder/BFS (0) | 2021.08.11 |
[LeetCode] Binary Tree Preorder Traversal - Preorder/Inorder/Postorder (0) | 2021.08.11 |
[LeetCode Medium] BST - Delete Node in a BST !! (0) | 2021.08.10 |
[LeetCode Medium] BST - Insert into a Binary Search Tree (0) | 2021.08.10 |