当前位置: 代码迷 >> 综合 >> 力扣 剑指 Offer 28. 对称的二叉树 简单
  详细解决方案

力扣 剑指 Offer 28. 对称的二叉树 简单

热度:99   发布时间:2024-01-30 02:23:44.0

题目

请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

    1
/ \
2   2
/ \ / \
3  4 4  3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

    1
/ \
2   2
\   \
3    3

示例 1:

输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:

输入:root = [1,2,2,null,3,null,3]
输出:false

限制:

0 <= 节点个数 <= 1000

题解

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

 

  相关解决方案