前言:
现时姐妹们对“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递归实现