javascript 二叉树,判断是否是自己的镜像

标签 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代码转化而来的。请告诉我哪里出错了。

最佳答案

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

关于javascript 二叉树,判断是否是自己的镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31237401/

相关文章:

javascript - React.js 和 Isotope.js

java - 如何在 Java 中从 xsd 创建对象树?

algorithm - 构建切片树的算法是什么?

javascript - 如何在Nodejs中将base64解码为图像?

javascript - 通过ajax更新laravel数据库

javascript - 刷新时更改图像

javascript - Bootstrap Tour n.popover 不是一个函数

c++ - BST前序遍历并将树内容写入临时数组

algorithm - 加速此功能的可能性是什么?

c++ - 模板类的大小相等