struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {}//成员中有指针,一定要重载构造函数
ListNode(){}//保留默认构造函数
};
//创建一个链表结点
ListNode* CreateListNode(int value)
{
ListNode *pNode = new ListNode();
pNode->val = value;
pNode->next = NULL;
return pNode;
}
//往链表末尾添加结点
/*
注意这里pHead是一个指向指针的指针,在主函数中一般传递的是引用。
因为如果要为链表添加结点,那么就会修改链表结构,所以必须传递引用才能够保存修改后的结构。
*/
void AddToTail(ListNode** pHead, int value)
{
ListNode* pNew = new ListNode();//新插入的结点
pNew->val = value;
pNew->next = NULL;
if (*pHead == NULL)//空链表
{
*pHead = pNew;
}
else
{
ListNode* pNode = *pHead;
while (pNode->next != NULL)
pNode = pNode->next;
pNode->next = pNew;
}
}
//遍历链表中的所有结点
void PrintList(ListNode* pHead)
{
ListNode *pNode = pHead;
while (pNode != NULL)
{
cout << pNode->val << " ";
pNode = pNode->ne
【面试题17】将两个有序的链表合并
最新推荐文章于 2023-04-17 09:27:57 发布