个人感觉相信不少同学和我一样,在接触数据结构开始刷算法题时,最让我头疼的就是递归的问题,然后去解答区一看,大佬和我的差距就是那么大,寥寥几笔就解决了问题。
根据自己最近看的视频和解题大佬思路,基本将递归的题目风味三部曲;
1.寻找递归的结束条件
2.寻找递归的返回值
3.明白本级递归的作用
在弄明白这三点之后,相关的问题也就迎刃而解了,下面就用简单的例题说明一下
题目背景
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
按三部曲的节奏来解答就是
- 当链表只剩一个节点或者没有节点的时候,递归就终止了
- 已经处理好的链表就是返回值
- 本级递归的任务也就是交换这3个节点中的前两个节点
代码如下
jsj201 zhong