思路:
1.交换的两个指针不方便作为递归参数;
2.换个替换方案,用char数组来实现,用left ,right 两个指标指示位置;
3.递归需要有终结态,当left > = right, 反转完成。
核心代码
void reverse( const char[] s, int left, int right )
{
if(left >= right)
return;
char t = s[left] ;
s[left] = s[right] ;
s[right] = t ;
reverse(s, left + 1, right - 1) ;
}
老师讲得好好啊,谢谢老师