Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
前言
2022春招打卡活动,刷算法的快乐走起
题目描述
题目链接:环形链表
题目描述我用截图leetcode的为主,题目如下图:
思路分析
题目解析:判断链表是否有闭环,老规矩,考虑一下边界或者特殊情况,链表不存在,那就没有闭环,链表只有一个长度,又不是指向自身也可以为false。继续分析:链表循环,那就是多次指向几个相同节点,那想起了一个js经常写的情况,判断有无这个属性,无则添加这个属性,有则加一。我这也是采用相同,第一次遍历节点 给它添加一个tag记录标识,如果再次遇到则说明是环,抛出true,结束循环,否则遍历完整个链表还没遇到重复就返回false。
解法:
/**
* @param {ListNode} head
* @return {boolean}
*/
var hasCycle = function(head) {
if(!head){
return false
}
let curr = head
while(curr){
if(curr.tag){
return true
}else{
let next=curr.next
curr.tag=true
curr=next
}
}
return false
};
总结
坚持就是胜利。第6题算法完成!