我需要帮助解决这个问题。只提示
给定二叉树,检查它是否是自身的镜像(即,围绕其中心对称)。 Example
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isSymmetric(TreeNode root) {
if((root == null) || (root.left == null && root.right == null)){return true;}
}
public boolean helper(TreeNode left, TreeNode right){
}
}
我遇到的麻烦是以某种方式创建一个递归问题。我很困惑,因为当我们分支出来时,如何使用帮助器将一个回到另一个?
有人可以提供提示吗?
答案 0 :(得分:1)
递归调用你的助手方法,如下面的
if (left != null && right != null && left.key == right.key)
return (helper(left.left, right.right)
&& helper(left.right, right.left));
请注意, 我们正在检查左侧节点的左侧和右侧节点的右侧是否对称,右侧节点的左侧是否对称。如果两者都是对称的,那么主树也将是。
答案 1 :(得分:0)