題目:兩數相加java
描述:描述:給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,而且它們的每一個節點只能存儲 一位 數字。若是咱們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。您能夠假設除了數字 0 以外,這兩個數都不會以 0 開頭。git
示例:github
這個題目相對基礎不少,就是兩個單鏈表的處理,咱們只要注意進位便可。不過咱們要處理好幾種特殊狀況:ide
只要注意處理好以上問題,其它都是常規操做,一塊兒看下參考代碼吧:學習
public ListNode addTwoNumbers(ListNode l1, ListNode l2) { // 用來標記返回結果的頭結點,增長一個無效結點可使代碼簡單 ListNode result = new ListNode(-1); // 記錄當前位置的值 int cur = 0; // 進位標誌 int identify = 0; // 用另外一個結點來構建鏈表,這樣就不會丟失頭結點指針了 ListNode resultHandle = result; // 避免長度不一致 while (l1!=null || l2!=null){ int a = l1!=null?l1.val:0; int b = l2!=null?l2.val:0; // 計算當前值 cur = a + b + identify; // 更新進位標誌 identify = cur/10; // 更新當前值 cur %= 10; // 當前值存入鏈表 resultHandle.next = new ListNode(cur); if(l1!=null){ l1 = l1.next; } if(l2!=null){ l2 = l2.next; } resultHandle = resultHandle.next; } // 注意進位 if(identify!=0){ resultHandle.next = new ListNode(identify); } // 去除無效頭結點 return result.next; }
好了,本次題目就是這麼簡單,主要在於細緻,處理好各類邊界問題就好。之後我會對題目進行適當的篩選,儘可能分享一些可以給咱們啓發的題目。不過所有的題目都會上傳到個人github。指針
題目:無重複字符的最長子串code
描述:給定一個字符串,請你找出其中不含有重複字符的最長子串的長度。blog
示例:圖片
相關源碼請加QQ獲取。資源
【感謝您能看完,若是可以幫到您,麻煩點個贊~】
更多經驗技術歡迎前來共同窗習交流: 一點課堂-爲夢想而奮鬥的在線學習平臺 http://www.yidiankt.com/
![關注公衆號,回覆「1」免費領取-【java核心知識點】]
QQ討論羣:616683098
QQ:3184402434
想要深刻學習的同窗們能夠加我QQ一塊兒學習討論~還有全套資源分享,經驗探討,等你哦!