简体   繁体   中英

javascript binary tree, check whether it is a mirror of itself

I learn javascript recently, I don't know why the code I wrote is wrong. Here is the quesion:Given a binary tree, check whether it is a mirror of itself.

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);

}; when the input is 1, the result is "undefined". This algorithm is transformed from my Java code. Please kindly inform me where I get wrong.

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);
};

you need to return the result of isSymmetric as shown above

personally, I wouldn't have the outer and inner functions have the same name, it looks confusing to my old eyes :p

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM