#include "stdafx.h"
#include <iostream>
using namespace std;
//定义结点类型
struct Node
{
int m_value;//结点值
Node* m_next;//指向下一个结点的指针
};
//创建一个长度为n的链表,返回头结点的指针
Node* creat(int n)
{
Node* head;
Node* p1;
Node* p2;
for (int i=0; i<n; i++)
{
if (i == 0)
{
head = new Node();//创建头结点
cout << "请输入第1个元素:";
cin >> head->m_value;
head->m_next = NULL;
p1 = head;
}
else
{
p2 = new Node();
cout << "请输入第" <<i+1 << "个元素:";
cin >> p2->m_value;
p2->m_next = NULL;
p1->m_next = p2;
p1 = p2;
}
}
return head;
}
//递归的实现A、B两个链表的交叉归并
void mergeRecursively(Node* headA, Node* headB) //注意:链表A的长度要大于等于链表B
{
if (headA == NULL || headB == NULL)
{
return;
}
mergeRecursively(headA->m_next, he
面试题36:不使用额外空间将A、B两链表元素交叉归并
最新推荐文章于 2022-03-12 17:22:47 发布
本文探讨如何在不使用额外空间的情况下,将两个链表A和B的元素交叉归并。通过详细步骤解析,揭示解决此类面试问题的关键思路。
摘要由CSDN通过智能技术生成