- 博客(10)
- 收藏
- 关注
原创 C++ LC142 环形链表II 个人学习记录
1、判断是否有环:快慢指针 如果是直线的话,慢指针永远无法追上快指针,但是如果有一个环,当两者都进入环中时,快指针和满指针必定相遇。2、求入环结点:数学方法。
2024-03-20 09:59:46
405
1
原创 C++ LC2 两数相加 个人学习记录
每次计算包含了本位和进位,首先求出sum,由l1的节点val1、l2的节点val2以及上一位的进位carry决定:sum = val1 + val2 + carry。重复以上步骤,直到两个链表均为空,如果此时进位不为0,那么就多插入一位作为两数之和的首位(链表末位)本位cur = sum % 10 进位carry = sum / 10;不要想复杂 把需要插入的值各自求出 再用尾插法插入新的链表就好。
2024-03-19 13:21:39
121
原创 C++ LC24 两两交换链表中的节点 个人学习记录
思路:设置一个dummy,如果首次交换1和2,那么令p1 = dummy,p2 和 p3对应1和2,进行操作。
2024-03-13 13:02:48
158
原创 C++ LC21 合并两个有序链表 个人学习记录
方法1 p1指向list1 p2指向list2 利用虚拟头节点新建一个链表 在两者均不为空时依次比较两个数大小 取较小的放入新链表。
2024-03-11 21:45:28
144
原创 C++ LC19 删除链表的倒数第N个节点 个人学习记录
方法2 双指针 首先,指针1从head开始移动N步 然后新建指针2指向head 开始和指针1共同向前移动 指针1再移动len-N次后 指向NULL 与此同时 指针2移动len-N步 指向倒数第N个节点 即为所求节点 (不需要知道len 指针1指向NULL即为判断条件)方法1 基本方法 已知要删除倒数第N个节点 可以先遍历链表 求出链表节点个数len 那么需要删除的就是第len-N+1个节点,这样就可以直接删除了。
2024-03-11 19:58:58
120
原创 C++ LC206 反转链表 个人学习记录
方法1 创建新的虚拟头节点(创建一个新的链表)依次遍历原有链表 将遍历节点依次头插入新链表 即可实现链表反转 返回值为dummy->next。
2024-03-09 15:43:40
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人