javascript二叉树,检查它是否是自己的镜像

时间:2015-07-06 03:32:34

标签: javascript tree

我最近学习了javascript,我不知道为什么我写的代码是错误的。这是问题:给定一个二叉树,检查它是否是自己的镜像。

var isSymmetric = function(root) {
if(root === null) return true;
function isSymmetric(leftNode, rightNode){
    if(leftNode === null && rightNode === null) return true;
    if(leftNode === null || rightNode === null) return false;
    return (leftNode.val == rightNode.val) && isSymmetric(leftNode.left, rightNode.right) && isSymmetric(leftNode.right, rightNode.left);
}
isSymmetric(root.left, root.right);

}; 当输入为1时,结果为"未定义"。该算法是从我的Java代码转换而来的。请告诉我哪里出错了。

1 个答案:

答案 0 :(得分:0)

var isSymmetric = function(root) {
        if (root === null) return true;

        function isSymmetric(leftNode, rightNode) {
            if (leftNode === null && rightNode === null) return true;
            if (leftNode === null || rightNode === null) return false;
            return (leftNode.val == rightNode.val) && isSymmetric(leftNode.left, rightNode.right) && isSymmetric(leftNode.right, rightNode.left);
        }
        return isSymmetric(root.left, root.right);
};

你需要返回isSymmetric的结果,如上所示

个人而言,我不会让外部和内部函数具有相同的名称,这看起来让我的老眼睛感到困惑:p