摘要:遇到的坑剛拿到這道題就直接做了這樣的判斷,可是萬一是這個判斷就是錯誤的了。思路二上述算法遍歷了兩次鏈表,還額外申請了一個數(shù)組空間,效率不高,不如直接就地反轉(zhuǎn)鏈表,更改每個節(jié)點自身的指針。
2018.10.14 來源:劍指offer 題目:反轉(zhuǎn)鏈表
輸入一個鏈表,反轉(zhuǎn)鏈表后,輸出新鏈表的表頭。
思路一:
把所有鏈表內(nèi)容都輸入到一個數(shù)組,再次遍歷鏈表,得到數(shù)組反轉(zhuǎn)后的值,最后輸出原來的head,只是值變了。
遇到的坑:
剛拿到這道題就while(currentNode.next)直接做了這樣的判斷,可是萬一head是null,這個判斷就是錯誤的了。就導(dǎo)致了雖然自己測試的時候代碼是對的。但是??途W(wǎng)的編輯器卻一直通不過。
/*function ListNode(x){ this.val = x; this.next = null; }*/ function ReverseList(pHead) { // write code here var arr = []; var currentNode = pHead; while(currentNode) { arr.push(currentNode.val); currentNode = currentNode.next; } currentNode = pHead; while(currentNode) { currentNode.val = arr.pop(); currentNode = currentNode.next; } return pHead; }
思路二:
上述算法遍歷了兩次鏈表,還額外申請了一個數(shù)組空間,效率不高,不如直接就地反轉(zhuǎn)鏈表,更改每個節(jié)點自身的next指針。
function ReverseList(pHead) { if(!pHead) return pHead; var prev = null; var next = null; while(true) { //保存上次 next = pHead.next; pHead.next = prev; if(next === null) break; prev = pHead; pHead = next; } return pHead; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/98358.html
摘要:更多的小算法練習(xí),可以查看我的文章。規(guī)則使用語言,使用函數(shù)獲取傳遞的參數(shù)并使用以下算法對其進行修改。將字符串中的每個字母替換為字母表后面的字母即變?yōu)?,變?yōu)?。然后將這個新字符串,,,,中的每個元音大寫,并最終返回此修改后的字符串。 雖然都是很簡單的算法,每個都只需5分鐘左右,但寫起來總會遇到不同的小問題,希望大家能跟我一起每天進步一點點。更多的小算法練習(xí),可以查看我的文章。 規(guī)則 Usi...
摘要:規(guī)則使用語言,讓函數(shù)獲取傳遞的參數(shù),并以相反的順序返回字符串。測試用例思路方法通過把字符串轉(zhuǎn)換成數(shù)組,并使用數(shù)組的反轉(zhuǎn)數(shù)組,然后使用重新拼接成字符串方法向后循環(huán)字符串或字符數(shù)組以生成新字符串 雖然都是很簡單的算法,每個都只需5分鐘左右,但寫起來總會遇到不同的小問題,希望大家能跟我一起每天進步一點點。更多的小算法練習(xí),可以查看我的文章。 規(guī)則 Using the JavaScript l...
摘要:規(guī)則使用語言,讓函數(shù)獲取傳遞的參數(shù)并返回字符串中的最大單詞。忽略字符串中標點符號并假設(shè)不會為空。測試用例思路通過過濾字符串,并把字符串根據(jù)空格符轉(zhuǎn)換成字符串?dāng)?shù)組通過循環(huán)把獲取字符串?dāng)?shù)組中的長度最長的字符串 雖然都是很簡單的算法,每個都只需5分鐘左右,但寫起來總會遇到不同的小問題,希望大家能跟我一起每天進步一點點。更多的小算法練習(xí),可以查看我的文章。 規(guī)則 Using the JavaS...
摘要:題目描述代碼思路思路一按行執(zhí)行二分查找,只要該行的第一個元素小于目標,就對該行二分查找。思路二從數(shù)組的左下角開始查找,如果當(dāng)前值小于目標,就向右,即如果當(dāng)前值大于目標,就向上,即?!绢}目描述】 showImg(https://user-gold-cdn.xitu.io/2019/5/22/16addf094e0320ca); 【代碼思路】 思路一:按行執(zhí)行二分查找,只要該行的第一個元素小于目...
摘要:題目描述代碼思路思路一按行執(zhí)行二分查找,只要該行的第一個元素小于目標,就對該行二分查找。思路二從數(shù)組的左下角開始查找,如果當(dāng)前值小于目標,就向右,即如果當(dāng)前值大于目標,就向上,即?!绢}目描述】 showImg(https://user-gold-cdn.xitu.io/2019/5/22/16addf094e0320ca); 【代碼思路】 思路一:按行執(zhí)行二分查找,只要該行的第一個元素小于目...
閱讀 1777·2021-10-11 10:57
閱讀 2371·2021-10-08 10:14
閱讀 3407·2019-08-29 17:26
閱讀 3369·2019-08-28 17:54
閱讀 3037·2019-08-26 13:38
閱讀 2915·2019-08-26 12:19
閱讀 3622·2019-08-23 18:05
閱讀 1290·2019-08-23 17:04