[leetcode] Symmetric Tree

jun·2021년 4월 4일
0
post-thumbnail

유의할점

null값의 경우도 넣어주어야한다.

풀이

루트 - 왼쪽 순회 - 오른쪽 순회는 루트 - 오른쪽순회 - 왼쪽순회랑 거울처럼 행동한다.

코드

Java

/**
 * 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 {
    ArrayList<Integer> left = new ArrayList<Integer>();
    ArrayList<Integer> right = new ArrayList<Integer>();
    
    public void inOrderLeft(TreeNode root){
        //nothing
        if(root==null){
            left.add(null); 
            return;    
        }
        //root
        left.add(root.val); 
        //left
        inOrderLeft(root.left);
        //right
        inOrderLeft(root.right);
    }
    
    public void inOrderRight(TreeNode root){
        //nothing
        if(root==null){
            right.add(null);
            return;    
        }
        //root
        right.add(root.val);
        //right
        inOrderRight(root.right);
        //left
        inOrderRight(root.left);
    }
    
    public boolean isSymmetric(TreeNode root) {
        inOrderLeft(root);
        inOrderRight(root);
        return left.equals(right);
    }
}
profile
Computer Science / Algorithm / Project / TIL

0개의 댓글