网站开发职业规划,asp做的网站怎么运行,免费人脉推广,微信打不开网站一、题目
请实现一个函数#xff0c;用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样#xff0c;那么它是对称的。 二、示例
2.1 示例 1#xff1a; 【输入】root [1,2,2,3,4,4,3] 【输出】true 2.2 示例 2#xff1a; 【输入】root [1,2,2,nul…一、题目
请实现一个函数用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样那么它是对称的。 二、示例
2.1 示例 1 【输入】root [1,2,2,3,4,4,3] 【输出】true 2.2 示例 2 【输入】root [1,2,2,null,3,null,3] 【输出】false 限制
0 节点个数 1000
三、解题思路
根据题目描述我们需要确定某个二叉树是否是对称二叉树。那么以第二层Node节点为例符合对称二叉树的条件就是Node.left.left等于Node.right.right并且Node.left.right等于Node.right.left并且通过递归的方式对每层的节点都进行对比操作。
为了便于描述我们以【输入】root [4,2,2,6,9,9,6,1,7,8,6,6,8,7,1]为例演示一下验证逻辑 【步骤1】root.left是否等于root.right 【步骤2】 [root.left].left是否等于[root.rigjt].right [root.left].right是否等于[root.rigjt].left 【步骤3】 [root.left.left].left是否等于[root.right.right].right [root.left.left].right是否等于[root.right.right].left [root.left.right].left是否等于[root.right.left].right [root.left.right].right是否等于[root.right.left].left 四、代码实现
class Solution {public boolean isSymmetric(TreeNode root) {if (root null) return true;return compare(root.left, root.right);}public boolean compare(TreeNode node1, TreeNode node2) {if (node1 null node2 null) return true;if (node1 null || node2 null || node1.val ! node2.val) return false;return compare(node1.left, node2.right) compare(node1.right, node2.left);}
} 今天的文章内容就这些了 写作不易笔者几个小时甚至数天完成的一篇文章只愿换来您几秒钟的 点赞 分享 。 更多技术干货欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享每天更新」