面试中遇到了道题!合并两个有序链表
贴贴代码!
#include <iostream>
using namespace std;
struct linkNode
{
int element;
linkNode *next;
};
linkNode * getLink(linkNode *firstLink,linkNode *secondLink)
{
if(firstLink->element <= secondLink->element) {
linkNode * head = firstLink;
while(firstLink->element <= secondLink->element)
{
if(firstLink->next != NULL)
{
if(firstLink->next->element > secondLink->element)
{
linkNode * tmp = firstLink->next;
firstLink->next = secondLink;
secondLink = secondLink->next;
firstLink->next->next = tmp;
if(secondLink == NULL) {
break;
}
}
firstLink = firstLink->next;
}
else
{
firstLink->next = secondLink;
break;
}
}
return head;
}else {
return getLink(secondLink,firstLink);
}
}
void print(linkNode * node)//用于打印链表
{
while(node->next != NULL)
{
cout << node->element << " ";
node = node->next;
}
cout << node->element << "";
}
linkNode * buildLink(int array[],int size)
{
linkNode * link = new linkNode();
link->element = array[0];
linkNode * tmplink = link;
for(int i = 1 ; i < size ; i ++)
{
linkNode * tmp = new linkNode();
tmp->element = array[i];
tmplink->next = tmp;
tmplink = tmplink->next;
}
return link;
}
int main()
{
//初始化链表(有序)
int a [] = {1,4,5,10,10};
int b [] = {1,2,5,7};
linkNode * firstLink = buildLink(a,5);
linkNode * secondLink = buildLink(b,4);
//显示
print(firstLink);
cout << endl;
print(secondLink);
//合并
cout << endl;
linkNode *newLink = getLink(firstLink,secondLink);
print(newLink);
cout << endl;
return 0;
}
分享到:
相关推荐
数据结构之合并两个有序链表PPT动画演示
合并两个有序链表.md
c语言链表的基本操作 c语言链表的基本操作之合并两个有序链表
合并两个有序链表(java代码).docx
示例 2:输出:[]示例 3:输出:[]* Definition for singly-linked list.//以合并两个有序链表为基础ListNode*
主要介绍了c++ 如何合并两个有序链表,帮助大家更好的理解和学习C++,感兴趣的朋友可以了解下
主要介绍了Python实现合并两个有序链表的方法,涉及Python操作链表节点的遍历、判断、添加等相关操作技巧,需要的朋友可以参考下
c语言 c语言_c语言编程基础之leetcode题解第21题合并两个有序链表
c++ c++_c++编程基础之leetcode题解第21题合并两个有序链表
21. 合并两个有序链表瞎写的不带头结点的方法def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> Li
本文实例讲述了JS实现的合并两个有序链表算法。分享给大家供大家参考,具体如下: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4...
何将两个有序链表并为一个有序链表。
# 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的 # 示例: # 输入:1->2->4, 1->3->4 # 输出:1->1->2->3->4->4
两个有序链表的合并pta
将两个有序的链表合并为一个有序链表,链表的大小是可变的
C++版本将两个有序链表合并为一个新的有序链表并返回原理及代码实现
要合并两个有序链表,可以按照以下步骤进行: 1. 创建一个新的链表作为合并后的结果。 2. 遍历两个有序链表,比较它们的节点值。 3. 每次选择较小的节点值,将其插入到新链表中,并移动指针到下一个节点。 4. 当...
两个有序链表合并 链表插入 删除 修改等