24 单链表就地逆置,合并链表
2014-09-18 19:30
246 查看
/* 第 24 题: 链表操作, (1).单链表就地逆置, (2)合并链表 */ node * reverseNonrecurse(node *head) { if(head==NULL) return head; node *p=head,*previous=NULL,*next=NULL; while(p->next!=NULL) { next=p->next;//保存下一个 p->next=previous;//p下一个为他前面的 previous=p; p=next; } p->next=previous; return p; } //两个排好序的合并 Node *merge(Node *h1, Node *h2) { if (h1==NULL) return h2; if (h2==NULL) return h1; Node *head; if (h1->data>h2->data) //谁做头 { head=h2; h2=h2->next; } else { head=h1; h1=h1->next; } Node *current=head; while(h1!=NULL||h2!=NULL) { if(h1==NULL || (h2!=NULL&&h2->data<h1->data))//h1空,或者h2不为空,并且值小于h1 { current->next=h2; h2=h2->next; current=current->next; } else { current->next=h1; h1=h1->next; current=current->next; } } current->next = NULL; return head; }
相关文章推荐
- 24.链表操作,单链表就地逆置
- 单链表的逆置,排序,合并有序链表,不带环相交
- 单链表的所有操作,检查是否有环,合并链表,逆置链表,排序链表......
- Q24、(链表):链表操作,单链表就地逆置
- 【学习点滴-数据结构-单链表】单链表的就地逆置
- 链表就地逆置和合并
- 链表 3:单链表就地逆置
- 单链表的实现(包括就地逆转单链表,表排序, 合并单链表、判断表是否有环)
- 【数据结构】单链表(二)单链表的逆置,合并与删除
- 单链表的实现(包括就地逆转单链表,表排序, 合并单链表、判断表是否有环)
- 数据结构——单链表的创建、逆置、插入、有序表的建立、有序单链表合并等基础操作!!
- 单链表就地逆置以及链表合并
- 单链表的就地逆置 (单链表带头结点)(某公司校园招聘面试试题)
- 单链表的就地逆置
- 单链表的逆置(链表由数组创建)
- 单链表就地逆置递归与非递归的方法
- 链表的基本操作 (1)采用尾插法建立一个链表; (2)输入一个元素,在道表中查找该元素是否存在,请给出相关信息; (3)将链表中的元素进行就地逆置。
- 对单链表实现就地逆置
- 带头结点的单链表就地逆置
- 单链表就地逆置的高效算法