strcpy,单链表逆置

来源:互联网 发布:mysql 添加key分区 编辑:程序博客网 时间:2024/06/07 18:01

.已知strcpy的函数原型:char* strcpy(char* strDest,char* strSrc)其中strDes是目的字符串,strSrc是源字符串。不调用C++/C的字符串库函数,请编写函数strcpy.

答案:

char* strcpy(char* strDes,char* strSrc)

{

if(strDes == NULL || strSrc == NULL)

     return NULL;

if(strDes == strSrc)

     return strDes;

char* temp = strDes;//注意这点的设置,下一步指针后移,需要设置一个临时变量来记录头节点

while((*strDes++  = *strSrc++) != '\0');

return temp;

}

 

2.已知链表的头结点head,写出一个函数把这个链表逆置

链表的节点信息如下:

typedef struct Node

{

int data;

struct Node* next;

}Node;

答:

Node* ConvertList(Node* head)

{

if(head == NULL || head->next == NULL)

      return head;//如果只有一个节点或者没有节点,则直接返回

Node*p,*q,*r;

p = head;

q = head->next;

r = q->next;

q->next = p;//提前操作,处理只有两个节点的情况

while(r != NULL)

{

p = q;

q = r;

r = q->next;

q->next = p;

}

head->next = r;

head = q;

return head;

}

 

原创粉丝点击