已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。
来源:互联网 发布:快速背单词软件 编辑:程序博客网 时间:2024/05/21 11:13
题目:已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)
1.循环方法:
核心代码:pNode Combine(pNode p,pNode node1, pNode node2) //node1 node2是有序的链表的头;将两个有序的链表合并,并保持有序状态{ pNode p1 = node1; pNode p2 = node2; while (NULL != p1 && NULL != p2) //两个都不为空时有三种情况 { if (p1->Element < p2->Element) { InsertEnd(p, p1->Element); p1 = p1->Next; }// Combine(p, p1, p2); else if (p1->Element > p2->Element) { InsertEnd(p, p2->Element); p2 = p2->Next;// Combine(p,p1, p2); } else { InsertEnd(p, p1->Element); InsertEnd(p, p2->Element); p1 = p1->Next; p2 = p2->Next;// Combine(p,p1, p2); } } while (NULL != p1 && NULL == p2) //有一个为空时将另一个全部插入到合并队列中 { InsertEnd(p, p1->Element); p1 = p1->Next; } while (NULL == p1 && NULL != p2) { InsertEnd(p, p2->Element); p2 = p2->Next; } Display(p); return p;}
2.递归的方法
核心代码:pNode Combine(pNode p,pNode node1, pNode node2) { pNode p1 = node1; pNode p2 = node2; if (NULL != p1 && NULL != p2) { if (p1->Element < p2->Element) { InsertEnd(p, p1->Element); p1 = p1->Next; Combine(p, p1, p2); } else if (p1->Element > p2->Element) { InsertEnd(p, p2->Element); p2 = p2->Next; Combine(p, p1, p2); } else { InsertEnd(p, p1->Element); InsertEnd(p, p2->Element); p1 = p1->Next; p2 = p2->Next; Combine(p, p1, p2); } } else if (NULL != p1 && NULL == p2) { InsertEnd(p, p1->Element); p1 = p1->Next; Combine(p, p1, p2); } else if (NULL == p1 && NULL != p2) { InsertEnd(p, p2->Element); p2 = p2->Next; Combine(p, p1, p2); }// Display(p); return p;}
阅读全文
0 0
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序,要求用递归方法进行。
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。使用非递归方法以及递归方法。
- 用递归方法实现两个链表head1和head2各自有序,请把它们合并成一个链表仍然有序。(c/c++)
- 将两个有序链表head1 head2,合并为一个链表
- 将两个有序链表head1、head2合成一个有序链表
- 合并两个有序链表,合并后依然有序
- 递归实现合并两个有序链表成一个链表依然有序
- 两个有序链表合并成一个有序链表
- 合并两个有序链表,合并后依然有序(C语言)
- 把两个有序链表合并为一个有序链表(注意空指针异常!)
- 两个有序链表合并为一个有序链表
- 两个有序链表合并为一个有序链表
- 两个有序链表求差集,合并为一个有序链表
- dubbo 的线程和连接模型 (长连接复用的两种形式)
- JavaScript Window
- Map集合
- ASPEN Aspenone V8.0化工流程模拟软件送8G\
- 动态增加div,实现div之间的切换,不刷新页面
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。
- Android状态栏微技巧,带你真正理解沉浸式模式
- 内省
- Spring boot(二)
- scala基础4⃣️集合
- 稳定排序:如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前
- linux系统调用列表
- HDU6170【DP+树状数组+差分维护】
- StarFarming