![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
list
youfuwenn
所有内容的主要目的是自我学习
展开
-
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 24题
递归class Solution {public: ListNode* swapPairs(ListNode* head) { //使用了递归,每次做了两个结点的交换并且连接下一个头结点。 if(head == nullptr || head->next == nullptr) return head; ListNode* next = head->next; head->next = swapPa原创 2021-11-24 21:51:43 · 597 阅读 · 0 评论 -
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。206.反转链表。
1 递归法class Solution {public: ListNode* reverseList(ListNode* head) { //递归用于可以把大问题化成小问题的问题,并且大小问题的性质相同,不断重复的问题。 //为什么要从后面开始反转?若从后面开始反转在前面的结点是可以记住后面的。 if(head == nullptr||head->next == nullptr) { return head;原创 2021-11-23 09:49:15 · 1546 阅读 · 0 评论 -
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 合并两个有序链表。
class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (l1 == nullptr) return l2; if (l2 == nullptr) return l1; if (l1->val <= l2->val) { l1->next = mergeTwoLists(l1->next, l2); return l1; }.原创 2021-11-21 11:21:51 · 777 阅读 · 0 评论 -
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。两数相加。
struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next(next) {}};class Solution {public: ListNode* addTwoNumbers(ListNode* l1, Lis.原创 2021-11-20 17:51:17 · 1228 阅读 · 0 评论