日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中LIstNode尾插法建立单链表

發布時間:2023/12/31 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中LIstNode尾插法建立单链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@yogurt_

在做Acwing 和力扣的編程時,經常有一個節點是ListNode,這里記錄一下利用已有已知結構體根據輸入利用尾插法創立單鏈表。

經過查閱資料,理解和最后實現如下:
ListNode結構體的定義

struct ListNode {int val;//當前節點值ListNode *next;//指向下一個節點的指針ListNode(int x) : val(x), next(NULL) {}//給定的構造函數聲明;初始化當前結點值為x,指針為空 };

構造一個新的節點的語法

ListNode *p = new ListNode(0);//構造一個新節點,值為0,指針為空

尾插法建立單鏈表,完整代碼

#include <iostream> #include <vector> using namespace std; //單鏈表結點結構體的定義 struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {} }; void print(ListNode* head); //vector<int> printListReversingly(ListNode* head); int main() {ListNode *dummy = new ListNode(0);//初始化一個虛擬頭結點ListNode *cur = dummy;//尾節點指針初始時指向虛擬頭結點cin.get();//接收‘[’字符,并跳過int temp;while (cin >> temp)//接收結點的數值信息{ListNode *tmp = new ListNode(temp);//創建一個臨時節點,值為接收的數值信息,指針為空cur->next = tmp;//尾結點的next指向臨時結點,也就是連上上一個結點和當前結點cur = tmp;//將尾節點指向臨時結點if (cin.get() != ',')//如果不是',',也就是是‘]’的時候,跳出循環,結束建立單鏈表break;}ListNode *head = dummy->next;//單鏈表的head為虛擬頭結點的nextprint(head);//打印建立的單鏈表return 0; } //打印建立的單鏈表 void print(ListNode* head) {ListNode* p = head;while (p != NULL){cout << p->val << " ";p = p->next;}cout << "\n"; }

運行截圖

以上注釋部分包含個人理解,如果有描述不準確的地方,歡迎交流!轉載請注明出處,謝謝!
參考文獻
[1]: https://www.cnblogs.com/xiaoxue126/p/9015541.html
[2]: https://bbs.csdn.net/topics/390806135

總結

以上是生活随笔為你收集整理的C++中LIstNode尾插法建立单链表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。