Chinaunix首页 | 论坛 | 博客
  • 博客访问: 70476
  • 博文数量: 13
  • 博客积分: 197
  • 博客等级: 入伍新兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-22 17:54
文章分类

全部博文(13)

文章存档

2011年(13)

分类: C/C++

2011-02-12 23:29:58

非递归算法应该不难,用递归的思想也能完成这个工作。
  1. /***********************************
  2. *
  3. *链表降序排列
  4. *Author:ckh
  5. *
  6. ************************************/

  7. node * mergelink(node *head1 , node *head2){
  8.     node *tmp=NULL;
  9.     //如果两个指针都为空,则结束执行
  10.     if(head1 == NULL && head2 == NULL)
  11.         return tmp;
  12.     //如果一个链表为空,则只要返回另一个链表剩下部分的第一个节点即可
  13.     else if (head1 == NULL)
  14.         return head2;
  15.     else if (head2 == NULL)
  16.         return head1;
  17.     else{
  18.         //如果两个指针均不为空,则递归处理
  19.         if(head1 -> data > head2 ->data){
  20.             tmp = head1;
  21.             tmp -> next =mergelink(head1 -> next , head2);
  22.         } else {
  23.             tmp = head2;
  24.             tmp -> next =mergelink(head1 , head2 -> next);
  25.         }
  26.     return tmp;
  27. }
阅读(4839) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~