题解 | #牛牛的链表添加节点#
牛牛的链表添加节点
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")
要考虑在末尾添加的情况