題目:給出乙個鍊錶中的兩個指標p1和p2,將其之間的結點翻轉。
思路:可以通過交換結點內的值來實現結點的翻轉,空間為o(n);
如果要求不能交換值,那麼僅憑p1和p2是無法翻轉的,因為不知道p1之前的節點,會掉鏈,只能翻轉p1之後的鍊錶,這個過程就類似於給定乙個頭節點,翻轉之後的鍊錶了;可以使用頭插法。
**:
交換值:
1struct
listnode 2;
67void reversenodes(listnode *p1, listnode *p2)
1617
int i = 0, j = nodes.size() - 1;18
while ( i19 swap(nodes[i++]->val, nodes[j--]->val);
20 }
翻轉鍊錶中的一段
92 給你單鏈表的頭節點 head 和兩個整數 left 和 right 其中 left right 請你反轉從位置 left 到位置 right 的鍊錶節點,返回 反轉後的鍊錶 鍊錶 翻轉 從中間指定位置,之前做過類似的 迭代法 3步 1 儲存當前節點的後乙個節點,2 後項指前項 3 前進 左邊賦...
反轉鍊錶與反轉鍊錶中的某一段
反轉鍊錶。請使用一趟掃瞄完成反轉。public static void main string args private static node reverse node head node previous null 將null節點當作head的上一節點 node current head,nex...
鍊錶 (翻轉鍊錶)的兩種演算法
coding utf 8 author leadingme mail leadingme qq.com mywebsite leadingme.top 翻轉鍊錶 演算法要求 翻轉乙個單鏈表 不帶頭節點 示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null def revers...