JS怎么让递归后处置判断的情况下为false就返回false,true则返回true?

原创
小哥 3年前 (2022-11-16) 阅读数 9 #大杂烩

今天在做LeetCode的 返回链表问题时 发现这个问题, 当判断两个值不同时,我会直接返回。false, 但是递归正在处理这个问题return false 是 跳过下面的语句并继续下一轮函数, 所以我当时很傻。我把代码放在第一位。

        let cur;
        let checkList = ((head) => {
            if (head != null) {
                // 事实证明,我写的就像下一行评论, 所以我遇到了这个问题
                // checkList(head.next)
                // 以下四行代码 替换上一行的注释。 我们可以解决这个问题
                let res = checkList(head.next);
                if (!res) {
                    return false;
                }
                if (cur.val !== head.val) {
                    return false;
                }
                cur = cur.next;
            }
            return true;
        })
        var isPalindrome = function (head) {
            cur = head;
            return checkList(head);

        };

我们只想在处理返回中添加以下代码。false总会回来的。false了, 达到最终回报false的目的

        let res = checkList(head.next);
        if (!res) {
            return false;
        }

然后减少代码冗余

        if(!checkList(head.next)){
        return false;
        }

我还是数据结构和算法的初学者。我有什么更好的意见可以私下评论或写信给我。↗

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除