我最近学习了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代码转换而来的。请告诉我哪里出错了。
答案 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