别墅外观设计网站推荐,电商模板网站,宝安中心医院上班时间,国家公示系统企业信息查询Practice makes perfect#xff01;
实战一#xff1a; 带环问题其实我们小学时就接触过#xff0c;就比如在操场上比赛跑步的追击问题#xff0c;这里也是一样#xff0c;如果我们定义两个指针#xff0c;一个快指针#xff0c;一个慢指针#xff0c;快指针走的快
实战一 带环问题其实我们小学时就接触过就比如在操场上比赛跑步的追击问题这里也是一样如果我们定义两个指针一个快指针一个慢指针快指针走的快一次走两步慢指针一次走一步那么如果有环的话这两个指针一定就会相遇。 bool hasCycle(struct ListNode *head) {struct ListNode* fasthead;struct ListNode* slowhead;while(fastfast-next)
{fastfast-next-next;slowslow-next;if(fastslow)return true;
}
return false;
}实战二 这个题是上道题的升级版本不仅需要你判断还要你返回环的位置我们如果两个指针在相遇点相遇了慢指针从相遇点开始走头结点从初始位置开始走那么他们一定会在入环的位置相遇。想到这里我们这个题是不是就迎刃而解了呢。 struct ListNode *detectCycle(struct ListNode *head) {struct ListNode* fasthead;struct ListNode* slowhead;while(fastfast-next){fastfast-next-next;slowslow-next;if(fastslow){struct ListNode* meetslow;while(meet!head){headhead-next;meetmeet-next;}return meet;}}return NULL;
}方法来自于实践在实践中积累方法继续加油