using namespace std; //定义链表节点结构体 struct ListNode { int val; ListNode* next; }; //初始化链表 ListNode* initList() { return nullptr; // 初始为空链表 } //删除输入的第一个bh,如果没有找到则删除链表中的第一个元素 void assign(ListNode*&...-Go服务器开发" />

ZBLOG

修改此代码是使输出结果最后不出现"-" #include using namespace std; //定义链表节点结构体 struct ListNode { int val; ListNode* next; }; //初始化链表 ListNode* initList() { return nullptr; // 初始为空链表 } //删除输入的第一个bh,如果没有找到则删除链表中的第一个元素 void assign(ListNode*&...

修改后的代码如下:

#include <iostream>
using namespace std;

// 定义链表节点结构体
struct ListNode {
    int val;
    ListNode* next;
};

// 初始化链表
ListNode* initList() {
    return nullptr; // 初始为空链表
}

// 删除输入的第一个bh,如果没有找到则删除链表中的第一个元素
void assign(ListNode*& head, int bh) {
    if (head == nullptr)
        return;

    if (head->val == bh) {
        ListNode* temp = head;
        head = head->next;
        delete temp;
    }
    else {
        ListNode* curr = head;
        while (curr->next != nullptr && curr->next->val != bh) {
            curr = curr->next;
        }

        if (curr->next != nullptr) {
            ListNode* temp = curr->next;
            curr->next = temp->next;
            delete temp;
        }
        else {
            ListNode* temp = head;
            head = head->next;
            delete temp;
        }
    }
}

// 在链表末尾添加元素bh
void finish(ListNode*& head, int bh) {
    ListNode* newNode = new ListNode();
    newNode->val = bh;
    newNode->next = nullptr;

    if (head == nullptr)
        head = newNode;
    else {
        ListNode* curr = head;
        while (curr->next != nullptr)
            curr = curr->next;

        curr->next = newNode;
    }
}

// 打印链表的元素
void print_list(const ListNode* head) {
	if(head==nullptr){
		cout<<"Empty List"<<endl;  // 链表为空时输出 "Empty List"
		return ;
	}
	
	const ListNode* curr = head;

	while (curr->next != nullptr) {
		cout << curr->val << "-";
		curr = curr->next;
	}
	
	cout<<curr->val<<endl;  // 输出最后一个元素的值,并换行
}

int main() {
    ListNode* head = initList();

    for (int i = 0; i < 10; i++) {
        finish(head, 101 + i);
    }

    int n;
    cin >> n;

    for (int i = 0; i < n; i++) {
        string str;
        int a;
        cin >> str >> a;

        if (str == "assign") {
            assign(head, a);
        }
        else if (str == "finish") {
            finish(head, a);
        }

        print_list(head);
    }

    return 0;
}

在原代码中,我们对print_list函数进行了修改,在输出链表元素时判断链表是否为空,如果为空则输出”Empty List”。此外,在打印最后一个元素时不再输出分隔符”-”,并在输出结束后换行。这样可以使得最终的结果在最后不出现”-“字符。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处: using namespace std; //定义链表节点结构体 struct ListNode { int val; ListNode* next; }; //初始化链表 ListNode* initList() { return nullptr; // 初始为空链表 } //删除输入的第一个bh,如果没有找到则删除链表中的第一个元素 void assign(ListNode*&...">https://golang.0voice.com/?id=9362

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?