判断一棵二叉树是否是对称二叉树

朱雀 2022-05-17 04:39 359阅读 0赞

70

  1. class TreeNode {
  2. int val;
  3. TreeNode left;
  4. TreeNode right;
  5. TreeNode(int x) { val = x; }
  6. }
  7. public class Solution {
  8. //判断一棵树是否为对称二叉树
  9. public boolean isSymmetric(TreeNode root) {
  10. if(root==null||(root.left==null&&root.right==null))
  11. return true;
  12. return isSymmetricCheck(root,root);
  13. }
  14. //递归调用实现
  15. public boolean isSymmetricCheck(TreeNode x,TreeNode y){
  16. if(x==null&&y==null) return true;
  17. if((x!=null&&y==null)||(x==null&&y!=null)) return false;
  18. return (x.val==y.val)&&isSymmetricCheck(x.left,y.right)&&isSymmetricCheck(x.right,y.left);
  19. }
  20. public static void main(String[]args){
  21. //System.out.println("Hello Wolrd!");
  22. TreeNode root=new TreeNode(1);
  23. root.left=new TreeNode(2);
  24. root.right=new TreeNode(2);
  25. root.left.left=new TreeNode(3);
  26. root.right.right=new TreeNode(3);
  27. Solution s=new Solution();
  28. System.out.println(s.isSymmetric(root));
  29. }
  30. }

发表评论

表情:
评论列表 (有 0 条评论,359人围观)

还没有评论,来说两句吧...

相关阅读