对称二叉树-101

打印 上一主题 下一主题

主题 519|帖子 519|积分 1557

标题描述

给你一个二叉树的根节点 root , 检查它是否轴对称。

解题思路

这里我们相称于是比较根节点左右两颗子树,我们依次向左右子树的左右两个方向进行遍历,我们比较左子树的左孩子和右子树的右孩子,左子树的右孩子和右子树的左孩子,这里如果不好理解可以看下面这个图片,如果两个子节点不为空且值相等我们就继续想下一层遍历,直至节点为空返回true,整个结果也就为true了。

代码实例
  1. class Solution {
  2.     public boolean isSymmetric(TreeNode root) {
  3.         if(root.left==null && root.right==null){
  4.             return true;
  5.         }
  6.         return judge(root.left,root.right);
  7.     }
  8.        
  9.     public boolean judge(TreeNode left,TreeNode right){
  10.         
  11.         //判断不符合题目条件的,我们可以直接返回不用再继续向下遍历了
  12.         if(left==null && right==null){
  13.             return true;
  14.         }else if(left==null && right!=null){
  15.             return false;
  16.         }else if(right==null && left!=null){
  17.             return false;
  18.         }else if(left.val!=right.val){
  19.             return false;
  20.         }
  21.         
  22.         boolean left_result=judge(left.left,right.right);
  23.         boolean right_result=judge(left.right,right.left);
  24.         return left_result && right_result;
  25.     }
  26. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表