判断对称二叉树

复制代码
package test;

/**
 * @title:TreeTest
 * @description: 判断对称二叉树
 * @author: dingpeng
 * @date: 2020/3/10
 * @since: Jdk8
 */
public class SymmetryTreeTest {


  public static void main(String[] args) {
      TreeNode a=new TreeNode(2);
      a.left=new TreeNode(3);
      a.right=new TreeNode(3);
      a.left.left=new TreeNode(4);
      a.left.right=new TreeNode(5);
      a.right.left=new TreeNode(null);
      a.right.right=new TreeNode(4);

      Solution s =new Solution();
      s.isSymmetric(a);

  }

}
class Solution {
    public int isSym = 0;
    public boolean isSymmetric(TreeNode root) {
        System.out.println(root);

        if(root==null){
            return true;
        }
        TreeNode left = root.left;
        TreeNode right = root.right;
        mid(left,right);
        System.out.println(isSym);
        return isSym==0?true:false;

    }

    //中序遍历
    public void mid(TreeNode nodeleft, TreeNode noderight){
       if(isSym!=-1){
           if(nodeleft!=null&&noderight!=null){
               if(nodeleft.val!=noderight.val) {
                   isSym = -1;
                   return;
               }
               mid(nodeleft.left, noderight.right);
               mid(nodeleft.right, noderight.left);

           }//有空值
           else if((nodeleft==null && noderight!=null) ||(nodeleft!=null && noderight==null)){
               isSym = -1;
               return;
           }
       }


    }

}
复制代码

 

posted @   Nausicaa0505  阅读(171)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示