將一個以鍊錶表示的數字加1
數字的鍊錶表示是這樣提供的:鍊錶的所有節點都被視為數字的一位數字。節點儲存數字,使得鍊錶的第一個元素保存數字的最高有效位,鍊錶的最後一個元素保存數字的最低有效位。例如,數字 202345 在鍊錶中表示為 (2->0->2->3->4->5)。
要為這個表示數字的鍊錶加 1,我們必須檢查清單中最低有效位的值。如果小於 9 就可以了,否則程式碼將更改下一個數字,依此類推。
現在讓我們看一個範例來了解如何做到這一點,1999 表示為(1-> 9- > 9 -> 9) 並添加1 應該將其更改為(2->0-> 0->0)
Input:1999 Output:2000
解釋
將給定的鍊錶表示的數字加1,意味著需要按照以下步驟進行操作:
- 反轉鍊錶:需要將鍊錶反轉,即將最後一個數字變成第一個,第一個變成最後一個。例如,1-> 9-> 9 -> 9 轉換為 9-> 9 -> 9 ->1。
- 對於這個反轉後的鍊錶,遍歷鍊錶,在最左邊的節點上加1。如果該節點的值等於9,則將進位傳遞到下一個節點。重複這個過程,直到沒有進位。
- 將字串還原為原始形式,然後傳回頭節點以列印字串。
範例
#include <iostream> using namespace std; //n=next node ; d=data ; p= previous node; h=head node; c=current node class Node { public: int d; Node* n; }; Node *newNode(int d) { Node *new_node = new Node; new_node->d = d; new_node->n = NULL; return new_node; } Node *reverse(Node *h) { Node * p = NULL; Node * c = h; Node * n; while (c != NULL) { n = c->n; c->n = p; p = c; c = n; } return p; } Node *addOneUtil(Node *h) { Node* res = h; Node *temp, *p = NULL; int carry = 1, sum; while (h != NULL) { sum = carry + h->d; carry = (sum >= 10)? 1 : 0; sum = sum % 10; h->d = sum; temp = h; h = h->n; } if (carry > 0) temp->n = newNode(carry); return res; } Node* addOne(Node *h) { h = reverse(h); h = addOneUtil(h); return reverse(h); } int main() { Node *h = newNode(1); h->n = newNode(9); h->n->n = newNode(9); h->n->n->n = newNode(9); h = addOne(h); while (h != NULL) { cout << h->d; h = h->n; } cout<<endl; return 0; }
以上是將一個以鍊錶表示的數字加1的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在任何語言中編寫程式時,將數字表示為輸出是一項有趣且重要的任務。對於整數類型(short、long或medium類型的資料),很容易將數字表示為輸出。對於浮點數(float或double類型),有時我們需要將其四捨五入到特定的小數位數。例如,如果我們想將52.24568表示為三位小數,需要進行一些預處理。在本文中,我們將介紹幾種技術,透過四捨五入將浮點數表示為特定的小數位數。在不同的方法中,使用類似C的格式化字串、使用精度參數以及使用數學函式庫中的round()函數是很重要的。讓我們逐一來看。帶有

地下城與勇士起源狂戰士怎麼加點,狂戰士屬於遊戲中的一個混傷職業,在遊戲中你會面臨力量和物理屬性的抉擇,優先加哪個是收益更高的呢,有關於武器的設置有什麼要注意的,以下就為大家帶來地下城與勇士起源狂戰士屬性加點優先權一覽。地下城與勇士起源狂戰士屬性加點優先級一覽1、狂戰士屬性加點優先級:物理攻擊力;力量;光屬性強化;全屬性強化;物理暴擊率;物理暴擊傷害;攻擊/技能釋放速度;移動速度;體力;精神。 2.狂戰士是綜合固定傷害和百分比傷害的職業,其中主要依靠物理攻擊、力量和獨立攻擊力。 3.物理攻擊會影響固

在本文中,我們將討論查找1到n(給定)之間的數字的問題,這些數字不能被2到10之間的任何數字整除。讓我們透過一些例子來理解這一點-Input:num=14Output:3Explanation:Therearethreenumbers,1,11,and13,whicharenotdivisible.Input:num=21Output:5Explanation:Therearefivenumbers1,11,13,17,and19,whicharen的解題方法簡單方法如果

給定一個單鍊錶和正整數N作為輸入。目標是使用遞歸找到給定列表中從末尾算起的第N個節點。如果輸入清單有節點a→b→c→d→e→f且N為4,那麼倒數第4個節點將會是c。我們將首先遍歷直到列表中的最後一個節點以及從遞歸(回溯)增量計數返回。當count等於N時,則傳回指向目前節點的指標作為結果。讓我們來看看此的各種輸入輸出場景-輸入-List:-1→5→7→12→2→96→33N=3輸出−倒數第N個節點為:2解釋−第三個節點是2 。輸入−列表:-12→53→8→19→20→96→33N=8輸出-節點不存

5月7日,我手機廠商正式宣布,本公司GTNeo6發表會定檔5月9日。我GTNoe6被定位為"性能風暴",旨在攪動中端機風雲。除此之外,該發表會也將是手機圈首場AI數位人發表會。屆時,真我realme副總裁、全球行銷總裁、中國區總裁徐起將以數位人的形式出現在發表會上。數位人徐起根據官方介紹,真我GTNoe6代號為"颶風",更快更強,將挑戰最強第三代驍龍8s旗艦,挑戰同檔最強產品力。日前,真我GTNeo6被發現直接在電商平台上架,部分核心配置曝光,顯示該機不僅搭載了驍龍8s處理器,還支援120W閃充

在數學中,5的整除規則規定,如果數字以0或5結尾,則它可以被5整除。還有另一種方法來決定5的整除規則,如果餘數為0,則傳回該數字能被5整除。 mod(%)運算子通常在程式設計中用於整除。讓我們舉一個例子。給定的數字是525,數字以5結尾,可以被5整除。給定的數字是7050,數字以0結尾,並且可以被5整除。給定的數字是678,數字不以0和5結尾,不能被5整除。在本文中,我們將解決該數字是否能被5整除的問題。演算法以下步驟是我們將使用java.util.*套件來取得原始資料類型的使用者輸入。從主類

Golang中如何將字串轉換為數字在Golang中,我們經常需要將字串轉換為數字來進行一些計算操作。字串轉換為數字的過程相對簡單,主要依賴Golang標準庫中的strconv套件。本文將詳細介紹如何使用strconv套件將字串轉換為數字,並給出一些具體的程式碼範例。將字串轉換為整數要將字串轉換為整數,可以使用strconv套件中的Atoi函數。 Ato

恢復微信角標數字的方法:1、強制退出微信,重新啟動;2、清除微信快取;3、檢查微信版本更新;4、卸載並重新安裝微信。詳細介紹:1、強制退出微信,重新啟動,這是最常見的解決微信角標數字異常的方法,在微信介面中,點擊左下角的「我」按鈕,再點擊右上角的「設定」按鈕,打開設定介面,在設定介面中,選擇“退出登入”,退出微信,等待幾秒鐘後,再次啟動微信,通常情況下角標數字就會恢復正常等等。
