17-打印從1到最大的n位數
描述
輸入數字
n
,按順序打印出從 1 到最大的 n 位十進制數。比如輸入 3,則打印出 1、2、3 一直到最大的 3 位數 999。示例 1:
輸入: n = 1 輸出: [1,2,3,4,5,6,7,8,9]
說明:
- 用返回一個整數列表來代替打印
- n 爲正整數
class Solution {
public:
vector<int> printNumbers(int n) {
int res = pow(10, n);
vector<int> tmp;
for (int i = 1; i < res; ++i) tmp.push_back(i);
return tmp;
}
};
18-刪除鏈表的節點
描述
給定單向鏈表的頭指針和一個要刪除的節點的值,定義一個函數刪除該節點。
返回刪除後的鏈表的頭節點。
注意:此題對比原題有改動
示例 1:
輸入: head = [4,5,1,9], val = 5
輸出: [4,1,9]
解釋: 給定你鏈表中值爲 5 的第二個節點,那麼在調用了你的函數之後,該鏈表應變爲 4 -> 1 -> 9.
示例 2:輸入: head = [4,5,1,9], val = 1
輸出: [4,5,9]
解釋: 給定你鏈表中值爲 1 的第三個節點,那麼在調用了你的函數之後,該鏈表應變爲 4 -> 5 -> 9.
說明:
題目保證鏈表中節點的值互不相同
若使用 C 或 C++ 語言,你不需要 free 或 delete 被刪除的節點
ListNode* deleteNode(ListNode* head, ListNode* tobeDelete) {
if(!head || !tobeDelete) return nullptr;
if(tobeDelete->next) {
ListNode *next = tobeDelete->next;
tobeDelete->val = next->val;
tobeDelete->next = next->next;
delete next;
} else {
if(head->next) {
ListNode *cur = head;
while(cur->next != tobeDelete) cur = cur->next;
ListNode *next = cur->next;
cur->next = nullptr;
delete next;
} else head = nullptr;
}
return head;
}