当前位置 博文首页 > 你们抢我名字的博客:理解递归

    你们抢我名字的博客:理解递归

    作者:[db:作者] 时间:2021-09-06 16:12

    递归的含义

    递归的中文理解就是传递和回归,传递即在每层递归之间要传递东西,回归即要回到初次递归处。记住一点递归的过程就是重复做相同的事情。

    如何写递归?

    递归的一个通用模板就是:①递归的终止条件,即递归什么时候结束;②本轮递归需要做的事情,即对数据的处理,包括对下一级递归返回的值和本轮值得处理;③本次递归需要返回给上一级递归的值。

    实例

    以力扣得题目讲解,题目描述如下:
    在这里插入图片描述
    递归总是从递归结束时依次向上处理。所以其代码为:/**

    • 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