递归的含义
递归的中文理解就是传递和回归,传递即在每层递归之间要传递东西,回归即要回到初次递归处。记住一点递归的过程就是重复做相同的事情。
如何写递归?
递归的一个通用模板就是:①递归的终止条件,即递归什么时候结束;②本轮递归需要做的事情,即对数据的处理,包括对下一级递归返回的值和本轮值得处理;③本次递归需要返回给上一级递归的值。
实例
以力扣得题目讲解,题目描述如下:
递归总是从递归结束时依次向上处理。所以其代码为:/**
- Definition for singly-linked list.
- struct ListNode {
-
int val;
-
ListNode *next;
-
ListNode(int x) : val(x), next(NULL) {}
- };
/
//递归
class Solution {
public:
ListNode swapPairs(ListNode* head) {
//递归终止条件
if(headnullptr||head->nextnullptr)
return head;
//本级递归需要做的事
ListNode *node=swapPairs(head->next->next);
ListNode *temp=head->next;
head->next=node;
temp->next=head;
//返回上级递归的值
return temp;
}
}; cs