leetcode 鍊錶1

2021-08-20 03:35:39 字數 1116 閱讀 7723

given a singly linked list l: l

0→l1→…→l

n-1→l

n,reorder it to: l

0→ln

→l1→l

n-1→l

2→ln-2→…

you must do this in-place without altering the nodes' values.

for example,given, reorder it to.

思路:先從中間切斷分為兩個鍊錶,將後乙個鍊錶反轉,再逐個插入到前乙個鍊錶。

#includeusing namespace std;

struct listnode

};//鍊錶結構定義

listnode* reverse(listnode *head)

return prh;

}// 反轉鍊錶

void reorderlist(listnode *head)

int tmp = 0;

listnode *q = head;

while (tmp < ((length - 1) / 2))

listnode *head1 = q->next;

q->next = null;

listnode *head2 = reverse(head1);

p = head;

q = head2;

// 鍊錶從中間切斷分為兩個部分

while(p != null && q != null)

// 將鍊錶的後半部分反轉後,鏈結到前半部分的鍊錶

}int main();

listnode *head = new listnode(a[0]);

listnode *p = head;

for (int i = 1; i < 8; i++)

reorderlist(head);

listnode *q = head;

while (q)

}

Leetcode 鍊錶 1 刪除節點

1.刪除鍊錶的結點 編寫乙個函式,在給定單鏈表乙個結點 非尾結點 的情況下,刪除該結點。假設該鍊錶為1 2 3 4 並且給定你鍊錶中第三個值為3的節點,在呼叫你的函式後,該鍊錶應變為1 2 4。分析 1.待刪除的節點不是尾節點 2.可以不借助待刪除節點的父節點,可以直接操作待刪除的節點 void d...

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...