龙空技术网

递归的实现

来杯Java提提神 42

前言:

现时姐妹们对“java递归实现”可能比较着重,咱们都想要学习一些“java递归实现”的相关文章。那么小编在网络上收集了一些关于“java递归实现””的相关资讯,希望我们能喜欢,你们快快来了解一下吧!

递归呢?一直以来都是比较绕的一个知识点,随着接触的题越来越多

今天呢有了些不一样的了解

1.首先,递归是一个函数

2.递归要对入参进行校验

3.正常写处理逻辑

以反转链表为例(头结点非空的情况举例)

1.首先理一下思路

现在有头结点,那么需要拿到后边的链表的最后一个节点,然后指向头结点

继续:后边的链表怎么反转呢?

后边链表同样可以拿到头结点(后边链表的头结点),自然可以采用同样的方法

这样就形成了循环

2.写伪代码

public static Node reverse(Node curr){

//对进来的node数据进行校验

如果是最后一个元素,那么这个元素就是新的头结点,直接返回就好了

//处理逻辑:1.拿到后边链表的最后一个节点

//处理逻辑:2.最后一个节点指向当前节点

//处理逻辑:3.当前节点就变成了最后一个,返回当前节点

}

3.代码实现

public Node reverse(Node curr){    //对进来的node数据进行校验    //如果是最后一个元素,那么这个元素就是新的头结点,直接返回就好了    if (curr.next == null) {        return curr;    }    //处理逻辑:1.拿到后边链表的最后一个节点    Node lst = reverse(curr.next);    //处理逻辑:2.最后一个节点指向当前节点    lst.next = curr;    curr.next = null;    //处理逻辑:3.当前节点就变成了最后一个,返回当前节点    return curr;}

标签: #java递归实现