#yyds干货盘点# 面试必刷TOP101:对称的二叉树

1.简述:

描述

给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)

例如:                                 下面这棵二叉树是对称的

#yyds干货盘点# 面试必刷TOP101:对称的二叉树

下面这棵二叉树不对称。

#yyds干货盘点# 面试必刷TOP101:对称的二叉树

数据范围:节点数满足 #yyds干货盘点# 面试必刷TOP101:对称的二叉树,节点上的值满足 #yyds干货盘点# 面试必刷TOP101:对称的二叉树

要求:空间复杂度 #yyds干货盘点# 面试必刷TOP101:对称的二叉树,时间复杂度 #yyds干货盘点# 面试必刷TOP101:对称的二叉树

备注:

你可以用递归和迭代两种方法解决这个问题

示例1

输入:

{1,2,2,3,4,4,3}

返回值:

true

示例2

输入:

{8,6,9,5,7,7,5}

返回值:

false

2.代码实现:

public class Solution {
boolean recursion(TreeNode root1, TreeNode root2){
//可以两个都为空
if(root1 == null && root2 == null)
return true;
//只有一个为空或者节点值不同,必定不对称
if(root1 == null || root2 == null || root1.val != root2.val)
return false;
//每层对应的节点进入递归比较
return recursion(root1.left, root2.right) && recursion(root1.right, root2.left);
}
boolean isSymmetrical(TreeNode pRoot) {
return recursion(pRoot, pRoot);
}
}
发表评论

相关文章