解答
                
                思路:
1.因为空间复杂度为o(1),不能采用new一个字符串空间,反向赋值;
2.可以想到,反转就是第一个字符跟倒数第一个字符对换,第二个跟倒数第二个… ;
3.设置两个指针head, rear ,分别放在第一位和倒数最后一位,然后向中间移动,
即可完成反转;
4.<条件反射>,要交换指针,一定设置记录结点p, 上来直接写。
核心代码
Char[]  reverse( char[] str)
{
      if(str.length == 0) //错误情况
               return str; 
       int head = 0;
       int rear  = str.length -1;
       char  p; //记录结点
       while( rear > head) {
               p = str[rear]
               str[rear]= str[head];
               str[head] = p;
               --rear; ++head;  
       }
     return str;
}
            
                
                    
这么久了终于弄明白这个问题