每日一练:LeeCode-101. 对称二叉树【二叉树】
2024-01-09 06:25:55
本文是力扣LeeCode-101. 对称二叉树 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐LeeCode。
给你一个二叉树的根节点 root , 检查它是否轴对称。
提示:
树中节点数目在范围 [1, 1000] 内
-100 <= Node.val <= 100
思路
本题采用递归的方式
如图所示,满足类似镜面对称即可
1 1
/ \ / \
2 3 3 2
/ \ / \ / \ / \
7 6 5 4 4 5 6 7
递归函数的两个条件(终止条件):
left
和right
都为空 trueleft
和right
有一个为空 false- 递归的比较
left.left
和right.right
,比较left.right
和right.left
,以及left.val == right.val
整体true/false,由实际判断确定
递归代码实现
class Solution {
public boolean isSymmetric(TreeNode root) {
return isMirror(root.left,root.right); //调用递归函数,比较左节点,右节点
}
public boolean isMirror(TreeNode left,TreeNode right){
if(left==null && right==null)return true;
if(left==null||right==null)return false;
//再递归的比较 左节点的左孩子 和 右节点的右孩子;以及比较 左节点的右孩子 和 右节点的左孩子
return (left.val == right.val) && isMirror(left.left,right.right) && isMirror(left.right,right.left);
}
}
重点:递归前,需要想清楚,遍历的顺序
大佬们有更好的方法,请不吝赐教,谢谢。
文章来源:https://blog.csdn.net/kdzandlbj/article/details/135469932
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!