《剑指offer》面试题16扩展题
来源:互联网 发布:中国经济金融数据库 编辑:程序博客网 时间:2024/06/16 08:17
该题目的扩展题为:“用递归实现同样的反转链表的功能”
我们知道对于可以循环解决的问题,递归也一定可以,因为这道题目要求返回的必须是反转后的头结点,也就是说我的递归函数在函数结尾的时候一定要是这样:
return ReverseListRecursively(...)
直到尾节点满足基础条件的时候返回节点,这样就完成了利用迭代函数返回反转函数尾节点的可能;
之后的问题就比较简单了,用迭代来模拟循环就可以了。
最后说一个和这个题毫无关系的话:递归在本质上就是栈结构。
下面是代码示例:
ListNode* ReverseListRecursively(ListNode* pHead, ListNode* pPrev){ if (pHead == NULL) return NULL; if(pHead->m_pNext == NULL) { pHead->m_pNext = pPrev; return pHead; } ListNode* pNext = pHead->m_pNext; pHead->m_pNext = pPrev; pPrev = pHead; pHead = pNext; return ReverseListRecursively(pHead, pPrev);}ListNode* ReverseList(ListNode* pHead){ if(pHead == NULL) return NULL; return ReverseListRecursively(pHead,NULL);}
0 0
- 《剑指offer》面试题16扩展题
- 剑指offer面试题4扩展题目
- 剑指offer面试题16
- 【面试题】剑指offer 16
- 剑指Offer----面试题28----扩展:字符的所有组合
- 剑指Offer----面试题28----扩展:八皇后问题
- 剑指offer 面试题
- 剑指offer面试题
- 剑指offer 面试题16 反转单链表
- 剑指Offer面试题16 & Leetcode206
- 剑指offer面试题 07附加题
- 剑指offer面试题总结
- 剑指offer面试题06
- 剑指offer面试题 04
- 剑指offer 面试题07
- 剑指offer面试题08
- 剑指offer面试题42
- 剑指offer面试题1
- 题目1192:回文字符串
- linux gdb调试非常有用的命令,附加案例
- [数算]研究了一天的《N个球放M个盒子问题》~~~~~~~~~~~~8种情况全部用公式解决
- Codeforces 515C Drazil and Factorial
- 函数 指针 结构体的综合应用
- 《剑指offer》面试题16扩展题
- 欢迎使用CSDN-markdown编辑器
- 黑马程序员--typedef关键字和结构体 枚举类型
- 以DELETE方式发送带请求体的HTTP请求
- 关于generate用法的总结【Verilog】
- iOS—— Architectures架构精简讲解
- NSString、NSMutableString基本用法
- 使用Protostuff序列化及反序列化优化调试
- Linux-Apache服务器常规设置——用户个人主页