递归和非递归实现单链表的转置。

来源:互联网 发布:流程的优化 编辑:程序博客网 时间:2024/06/05 15:43

1.非递归实现。

void List::inverse(){Node *p1 = Head, *p2,*p3;p2 =p3=NULL;while (p1){p2 = p1->next;p1->next = p3;Head =p3= p1;p1 = p2;}}
2.递归实现,就是通过不断的调用自己,最后实现转置。
Node * List::inverse(Node *p){Node *p1;if (p==NULL||p->next==NULL){Head = p;return p;}else{p1 = inverse(p->next);p1->next= p;p->next = NULL;}return p;}


0 0
原创粉丝点击