目錄
一、反轉鍊錶 型別
二、雙指標型別
三、鍊錶合併型別
四、鍊錶排序
206. 反轉鍊錶
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
return pre;
}};//遞迴實現
class solution
};
92. 反轉鍊錶 ii
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
auto cur = p;
listnode *pre = nullptr;
while(cnt--)
prem ->next = pre;
p->next = cur;
return fake->next;
}};
24. 兩兩交換鍊錶中的節點
class solution
}return head->next;
}};//遞迴實現
class solution
};
25. k 個一組翻轉鍊錶
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
if(cur)
return pre;
}else return head;
}};/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
if(n == 0)
pre->next = p1;
pre = l;
}l = inside;
}return res->next;
}};
160. 相交鍊錶
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
return pa;
}};
141. 環形鍊錶
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
return true;
}};
142. 環形鍊錶 ii
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
fast = head;
while(slow!=fast)
return fast;
}};
21. 合併兩個有序鍊錶
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
else
}cur->next = l1? l1:l2;
return head->next;
}};
23. 合併k個排序鍊錶
struct cmp
};class solution ;
priority_queue,decltype(cmp)> pq(cmp);
for(int i = 0;inext = tmp;
cur = tmp;
if(tmp->next)pq.push(tmp->next);
} return head;
} };
147. 對鍊錶進行插入排序
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
return dummy->next;
}};
148. 排序鍊錶
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
void quick_sort(listnode* head,listnode* tail)
p2 = p2->next;
} swap(head,p1);
quick_sort(head,p1);
quick_sort(p1->next,tail);
} listnode* sortlist(listnode* head)
};/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
pre->next = nullptr;
auto l1 = sortlist(head);
auto l2 = sortlist(slow);
return merge(l1,l2);
}listnode* merge(listnode* l1,listnode* l2)
else
}};
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小的結點,另乙個鍊錶儲...