#include <iostream>
using namespace std;
typedef struct Node
{
int data;
struct Node *pNext;
}Node;
Node *createLink(Node a[],int n)
{
Node *head= &a[0];
for(int i = 0 ; i < n-1 ; i++)
{
a[i].pNext = &a[i+1];
}
a[n-1].pNext = NULL;
return head;
}
void printList(Node *head)
{
Node *p = head;
while(p != NULL)
{//这边不要写成p->pNext != NULL不然会少一个
cout<<p->data<<" ";
p = p->pNext;
}
cout<<endl;
}
//1、已知链表的头结点head,写一个链表逆序。
Node *reverseList(Node *head)
{
if(head == NULL || head->pNext == NULL)
{
return head;
}
Node *p1 = head;
Node *p2 = head->pNext;
Node *p3 = p2->pNext;
p1->pNext = NULL;//让链表头变为尾
while(p3 != NULL)
{
p2->pNext = p1;
p1 = p2;
p2 = p3;
已知两个链表head1和head2各自有序,请把它们合并成一个有序链表(保留所有节点,即使大小相同)
最新推荐文章于 2022-09-21 12:42:16 发布