![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
自由幻梦师
越刷越爽,每天五道leetcode走起
展开
-
链表中倒数第k格节点
步骤: 1.先求链表的节点个数 2.找倒数第k格数公式为,n+1-k,找到第n-k+1格点后,只用进行n-k次操作 class Solution { public: bool hasCycle(ListNode *head) { if(!head||!head->next)return false; auto a=head,b=head->next; while(b){ a=a->next,b=b..原创 2022-02-11 15:55:36 · 53 阅读 · 0 评论 -
环形链表
这题用快慢指针,一个指向第一个点,一个指向第二个点,每次第一个指针走一步,第二个指针走两步,如果这个链表有环说明这两个指针可以相遇,如果没有环,说明第二个指针会达到空节点 步骤: 1.如果链表为空或者只有一个节点说明无环 2.标记两个指针 3.以第二个指针是否为空作为循环标准,每次先把两个指针往后移动一个,判断b是否为空后再移动一格,判断是否相等,相等就表示相遇返回true 4.如果退出while循环表示第二个指针为空,返回false class Solution { public: ..原创 2022-02-11 15:41:03 · 273 阅读 · 0 评论 -
反转链表
这是一道非常经典的题目 知识点: 当我们用到那几个点时可以提前用变量来存,省的麻烦 auto a=head,b=a->next; 我们链表题先要画图,将图画出来我们 就知道,这里我们交换反转节点一共要用到两个位置 我们每次要用到前后两个节点,每次把后面一个节点的指针指向前面一个节点。然后将两个指针顺次移动一位,最后将首届点的下一个节点指向空节点,最后返回a即可。 class Solution { public: ListNode* reverseList(ListN...原创 2022-02-11 09:38:33 · 491 阅读 · 0 评论