> 文章列表 > 【LeetCode】剑指 Offer(7)

【LeetCode】剑指 Offer(7)

【LeetCode】剑指 Offer(7)

目录

写在前面:

题目剑指 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;}
};

过啦!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。