#include<iostream>
using namespace std;
struct ListNode
{
int val;
ListNode* next;
ListNode(int x):val(x),next(nullptr){}
};
class Solution
{
public:
void daoxu(ListNode* curr)
{
if(curr==nullptr) return;
daoxu(curr->next);
cout<<curr->val<<endl;
}
ListNode* copy(ListNode* head)
{
ListNode* curr=head;
ListNode* dummyNode=new ListNode(0);
ListNode* pre=dummyNode;
while(curr)
{
ListNode* node=new ListNode(curr->val);
pre->next=node;
curr=curr->next;
pre=node;
}
return dummyNode->next;
}
//头插法创建新链表
ListNode* create(ListNode* nodeHead, vector<int>& nums)
{
ListNode* newNode;
for(int i=0;i<nums.size();i++)
{
newNode=neW ListNode(nums[i]);
newNode->next=nodeHead->next;
nodeHead->next=newNode;
}
return nodeHead;
}
//尾插法创建新链表
ListNode* create(ListNode* nodeRear, vector<int>& nums)
{
ListNode* newNode;
ListNode* tmp=nodeRear;
for(int i=0;i<nums.size();i++)
{
newNode=neW ListNode(nums[i]);
tmp->next=newNode;
tmp=newNode;
}
return nodeRear;
}
};
int main()
{
ListNode* l1=new ListNode(1);
ListNode* l2=new ListNode(2);
ListNode* l3=new ListNode(3);
l1->next=l2;
l2->next=l3;
Solution s;
ListNode* newCopyHead=s.copy(l1);
return 0;
}
创建链表相关
最新推荐文章于 2024-08-19 23:56:23 发布