leetcode:Symmetric Tree 【Java】

来源:互联网 发布:csgo cpu优化 编辑:程序博客网 时间:2024/04/30 03:39

一、问题描述

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

For example, this binary tree is symmetric:

    1   / \  2   2 / \ / \3  4 4  3

But the following is not:

    1   / \  2   2   \   \   3    3

Note:
Bonus points if you could solve it both recursively and iteratively.

二、问题分析

参照算法leetcode:Same Tree 【Java】。

三、算法代码

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public boolean isSymmetric(TreeNode root) {        if(root == null){            return true;        }        return isSymmetric(root.left, root.right);            }        public boolean isSymmetric(TreeNode p, TreeNode q){        if(p == null && q == null){            return true;        }        if(p == null || q == null){            return false;        }                return (p.val == q.val) && isSymmetric(p.left, q.right) && isSymmetric(p.right, q.left);    }}


0 0