![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
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 评论