LeetCode-对称二叉树
Posted EmacsDevinkin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-对称二叉树相关的知识,希望对你有一定的参考价值。
LeetCode-对称二叉树
Table of Contents
1 Easy-对称二叉树
1.1 题目描述
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
2 自己的解答
2.1 思路
- 这题跟之前做过的一道题非常类似,同样可以利用递归法解决. 参考 LeetCode-相同的树
2.2 代码
package algorithm.easy; public class IsSymmetric { public boolean solution(TreeNode root) { if (root == null) { return true; } else { return subCompare(root.left, root.right); } } public boolean subCompare(TreeNode p, TreeNode q) { boolean lc = false; boolean rc = false; // 如果p和q均为空,镜像对称,true if (p == null && q == null) { return true; } else if (p != null && q != null) { // 如果p和q都不为空,比较值是否相同,相同,递归遍历 if (p.val == q.val) { // 比较p的左和q的右是否一致 lc = subCompare(p.left, q.right); // 比较q的左和p的右是否一致 rc = subCompare(p.right, q.left); } else { // 不同,不是镜像对称 return false; } } else { // 如果p和q其中一方为空,镜像不对称,false return false; } return lc && rc; } }
以上是关于LeetCode-对称二叉树的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 101.对称二叉树 - JavaScript
⭐算法入门⭐《二叉树》简单03 —— LeetCode 101. 对称二叉树