面试题目之单链表的反转

来源:互联网 发布:家长控制软件 编辑:程序博客网 时间:2024/05/16 12:13
struct node{    int data;    struct node *next;};typedef struct node ListNode;typedef ListNode *LinkNode;LinkNode reverse(LinkNode head){    LinkNode p1,p2,p3;    //如果没有结点或只有头结点    if(head == NULL || head->next == NULL)        return head;    p1 = head;    p2 = head->next;    head->next = NULL;//反转后head成为最后一个结点        //链表中有大于一个结点    while(p1->next != NULL)    {        p3 = p2->next;        p2->next = p1;        p1 = p2;        p2 = p3;    }    head = p1;    return head;}

1 0
原创粉丝点击