JS怎么让递归后处置判断的情况下为false就返回false,true则返回true?
原创今天在做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;
}
我还是数据结构和算法的初学者。我有什么更好的意见可以私下评论或写信给我。↗
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123




