126 对称的二叉树

发布时间:2024年01月20日

问题描述:请实现一个函数,用来判断一颗二叉树是不是堆成的。如果一颗二叉树和他的镜像一样,那么他是对称的。
递归方法求解:

public Boolean isSym(TreeNode left,TreeNode right)
{
if(left==null&&right==null){return true;}
if(left!=null&&right==null){return false;}
if(left==null&&right!=null){return false;}
if(left.val!=right.val){return false;}
return isSym(left.left,right.right)&&isSum(left.right,right.left);
}
public Boolean IsSym(TreeNode root)
{
return isSym(root.left,root.right);
}

非递归的方式

public Boolean isSym(TreeNode root)
{
Queue<TreeNode>queue=new LinkedList<>();
queue.add(root.left);
queue.add(root.right);
while(!queue.isEmpty())
{
TreeNode left=queue.poll();
TreeNode right=queue.poll();
if(left!=null&&right==null){return false;}
if(left==null&&right!=null){return false;}
if(left.val!=right.val){return false;}
queue.add(left.left);
queue.add(right.right);
queue.add(left.right);
queue.add(right.left);
}
return true;
}

文章来源:https://blog.csdn.net/qq_52299902/article/details/135708913
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。