数据结构与算法
行孤、
就写博客做做笔记,写一下我自己的想法。
展开
-
一、链表及经典问题
文章目录一、141 环形链表1、思路2、注意细节,起点不一样3、代码二、142 环形链表入口三、202 快乐数四、206 反转链表五、92 反转链表二六、61 旋转链表七、19 删除链表第N个节点八、83 删除排序链表中的重复元素九、82 删除排序链表中的重复元素二十、24 两两交换链表中的节点一、141 环形链表1、思路 本方法需要到「Floyd 判圈算法」(又称龟兔赛跑算法)有所了解。 假想「乌龟」和「兔子」在链表上移动,「兔子」跑得快,「乌龟」跑得慢。当「乌龟」和「兔子」从链表上的同一个节原创 2021-11-13 08:54:53 · 1277 阅读 · 0 评论 -
202 肥婆快乐数
class Solution {public: // 2、制作节点的函数 int makeNode(int x) { // 定义一个变量,存放各个位上的数的总和 int sum = 0; // 用一个循环来取各个位上的数的平方 while(x!=0) { // 先取最后一位x%10,然后求平方和,接着放进总和变量里面原创 2021-10-04 12:56:53 · 91 阅读 · 0 评论 -
找出有环链表的入口点
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *detectCycle(ListNode *head) { if(head == NULL) ret原创 2021-10-04 10:15:47 · 140 阅读 · 0 评论 -
链表是否有环
class Solution {public: bool hasCycle(ListNode *head) { // 首先判断链表是否为空 if(head == NULL) return false; // 定义快慢指针 ListNode *slow = head; // 其实快指针也可以和慢指针同起点,只要快指针跑得比满指针快就行 ListNode *fast = head->next;原创 2021-10-04 09:16:11 · 62 阅读 · 0 评论