非递归算法应该不难,用递归的思想也能完成这个工作。
- /***********************************
- *
- *链表降序排列
- *Author:ckh
- *
- ************************************/
- node * mergelink(node *head1 , node *head2){
- node *tmp=NULL;
- //如果两个指针都为空,则结束执行
- if(head1 == NULL && head2 == NULL)
- return tmp;
- //如果一个链表为空,则只要返回另一个链表剩下部分的第一个节点即可
- else if (head1 == NULL)
- return head2;
- else if (head2 == NULL)
- return head1;
- else{
- //如果两个指针均不为空,则递归处理
- if(head1 -> data > head2 ->data){
- tmp = head1;
- tmp -> next =mergelink(head1 -> next , head2);
- } else {
- tmp = head2;
- tmp -> next =mergelink(head1 , head2 -> next);
- }
- return tmp;
- }
阅读(4839) | 评论(0) | 转发(0) |