
题目
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
解题思路
解法一:
递归版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
public class { boolean isSymmetricalHelper(TreeNode left, TreeNode right){ if(left == null && right == null){ return true; } if((left == null && right != null) || (left != null && right == null)){ return false; } if(left.val != right.val){ return false; } return isSymmetricalHelper(left.left, right.right) && isSymmetricalHelper(left.right, right.left); } boolean isSymmetrical(TreeNode pRoot) { if(pRoot == null){ return true; } return isSymmetricalHelper(pRoot.left, pRoot.right); } }
|
解法二:
非递归版本
近期评论