写在前面:
生命不息,刷题不止。
题目剑指 Offer 17. 打印从1到最大的n位数 - 力扣(Leetcode)
题目的接口:
class Solution { public: vector printNumbers(int n) { } };
解题思路:
思路很简单无脑:
根据n的值,
找出其对应的需要打印的数的最后一个数last。
然后直接暴力循环打印即可。
代码:
class Solution { public: vector printNumbers(int n) { vector 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; } };
过啦!!!
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果喜欢本文的话,欢迎点赞和评论,写下你的见解。
如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。
之后我还会输出更多高质量内容,欢迎收看。