目录
写在前面:
题目剑指 Offer 17. 打印从1到最大的n位数 - 力扣(Leetcode)
题目的接口:
解题思路:
代码:
过啦!!!
题目:剑指 Offer 18. 删除链表的节点 - 力扣(Leetcode)
题目的接口:
解题思路:
代码:
过啦!!!
写在最后:
写在前面:
生命不息,刷题不止。
题目剑指 Offer 17. 打印从1到最大的n位数 - 力扣(Leetcode)
题目的接口:
class Solution {
public:
vector<int> printNumbers(int n) {
}
};
解题思路:
思路很简单无脑:
根据n的值,
找出其对应的需要打印的数的最后一个数last。
然后直接暴力循环打印即可。
代码:
class Solution {
public:
vector<int> printNumbers(int n) {
vector<int> v;
int last = 0;
//找出最后一个需要打印的数
while(n--)
{
last = last * 10 + 9;
}
//遍历即可
for(int i = 1; i<=last;i++)
{
v.push_back(i);
}
return v;
}
};
过啦!!!
题目:剑指 Offer 18. 删除链表的节点 - 力扣(Leetcode)
题目的接口:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* deleteNode(ListNode* head, int val) {
}
};
解题思路:
这题也比较简单,
首先解决链表头删的特殊情况,
然后因为题目需要删除一个具体的节点,
所以不用考虑空链表的情况,
然后只需要遍历链表,然后删除就行。
代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* deleteNode(ListNode* head, int val) {
//链表头删
if(head->val == val)
{
head = head->next;
}
//设置两个指针
ListNode* cur = head->next;
ListNode* prev = head;
//遍历链表删除节点
while(cur)
{
if(cur->val == val)
{
prev->next = cur->next;
break;
}
prev = cur;
cur = cur->next;
}
//返回头结点
return head;
}
};
过啦!!!
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果喜欢本文的话,欢迎点赞和评论,写下你的见解。
如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。
之后我还会输出更多高质量内容,欢迎收看。