题解 | #牛牛的链表添加节点#
牛牛的链表添加节点
https://www.nowcoder.com/practice/e33b79c2e15a41f9b541e73cd256124a
#include <iostream>
using namespace std;
struct Node
{
int val;
Node* next;
Node(): val(0), next(nullptr) {}
Node(int val): val(val), next(nullptr) {}
Node(int val, Node* next): val(val), next(next) {}
} ;
void createList(Node* dummy, int n)
{
int i = 0;
Node* node = dummy;
while (i != n)
{
int d;
cin >> d;
node->next = new Node(d);
node = node->next;
i++;
}
}
void addListNode(Node* dummy, int i)
{
Node* node = dummy;
int cnt = 0;
while (node->next != nullptr)
{
if (cnt == i)
{
Node* temp = new Node(i);
temp->next = node->next;
node->next = temp;
break;
}
else
cnt++;
node = node->next;
}
if (node->next == nullptr && cnt == i)
node->next = new Node(i);
}
void printList(Node* dummy)
{
Node* node = dummy->next;
while (node != nullptr)
{
cout << node->val << " ";
node = node->next;
}
}
int main() {
int n, i;
cin >> n >> i;
Node* dummy = new Node();
createList(dummy, n);
addListNode(dummy, i);
printList(dummy);
return 0;
}
// 64 位输出请用 printf("%lld")
要考虑在末尾添加的情况

