Leetcode 鍊錶

2021-09-29 10:46:01 字數 726 閱讀 5759

解題思路:跟蹤進製,逐位相加

public

static listnode add

(listnode l1, listnode l2)

//檢查 carry = 1carry=1 是否成立,如果成立,則向返回列表追加乙個含有數字 11 的新結點。

if(carry >0)

//返回頭結點的下乙個節點,因為頭結點初始化為0,下乙個節點才是插入的節點

return dummyhead.next;

}

解題思路:雙指標,一次遍歷

public listnode removenthfromend

(listnode head,

int n)

// 兩個指標同時遍歷,直到第乙個指標到末尾

while

(first != null)

//刪除第二個指標的下乙個元素

second.next = second.next.next;

return dummy.next;

}

總結:鍊錶演算法可以採用啞結點來進行輔助,啞結點用來簡化某些極端情況,例如列表中只含有乙個結點,或需要刪除列表的頭部。

------------------- 持續更新中 -------------------

leetcode 鍊錶 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?head null 空鍊錶,回文,返回true head.next null 只有乙個節點的列表,回文,返回tru...

leetcode 鍊錶 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false示例 2 輸入 1 2 2 1輸出 true高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 利用快慢指標找到中間節點,當快指標走到末尾時,慢指標指向中間節點 交中間節點之後的節點進行鍊錶反轉 設定指標p1從h...

分隔鍊錶(鍊錶 LeetCode)

題目鏈結 給你乙個鍊錶和乙個特定值 x 請你對鍊錶進行分隔,使得所有小於 x 的節點都出現在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5維護兩個鍊錶,乙個鍊錶儲存比x小的結點,另乙個鍊錶儲...