- 博客(79)
- 收藏
- 关注
原创 两个栈实现队列
用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。class Solution{public: void push(int node) { stack1.push(node);//将元素推入stack1中 } int pop() { while(!stack1.empty()
2022-05-10 21:53:44
132
原创 删除链表里的重复元素
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次./**链表节点定义 * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if(head==NULL)//链表为空就返回空 { ...
2022-05-10 21:43:23
1262
原创 判断链表是否回文
给定一个链表,请判断该链表是否为回文结构。/**节点定义 * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: bool isPail(ListNode* head) { vector<int>nums; while(head!=NULL)//用一个vector容器赋值链表里的元素 {
2022-05-10 21:31:33
220
原创 合并两个排序的链表
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。/*链表节点struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(!pHe
2022-05-09 13:57:37
191
原创 如何反转链表
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。/*节点的定义,一个数据域,一个指针域,一个构造函数struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode*
2022-05-09 13:51:13
140
原创 二叉树最大深度
/**树节点 * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solution {public: int maxDepth(TreeNode* root) { if(root==NULL) return 0; return max(maxDepth(root->left.
2022-05-08 17:53:46
956
原创 二叉树后序遍历
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */class Solution {public: void tailorder(vector<int>&tree,TreeNode*root) .
2022-05-08 17:47:46
170
原创 二叉树中序遍历
/**创建一个节点 * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */class Solution {public: void midorder(vector<int>&res,TreeNode*root.
2022-05-08 17:45:13
289
原创 二叉树前序遍历
/**树节点的定义,一个数据域,两指针域,构造函数,务必记清 * struct TreeNode { * int val; * struct TreeNode *left;//左指针 * struct TreeNode *right;//右指针 * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */class Solution {public: void preorder(vector<.
2022-05-08 17:39:54
172
原创 打印数字N位数字
输入数字n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。class Solution {public: vector<int> printNumbers(int n) { vector<int>v;//空数组 int number=1; for(int i=0;i<n;i++)//最小的n+1位数 { .
2022-05-08 17:30:45
172
原创 返回链表内的元素
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。/**注意链表的结点的定义方式,数据域和指针域,构造函数* struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class Solution {public: vect
2022-05-08 17:23:21
591
原创 替换字符串内的空格
请实现一个函数,将一个字符串s中的每个空格替换成“%20”。class Solution {public: string replaceSpace(string s) { string str="";//设置一个空串 for(int i=0;i<s.size();i++) { if(s[i]!=' ') { str+=s[i];//不为空读取str里的
2022-05-08 17:16:31
96
原创 二维数组查找目标值
给一个二维数组和一个目标值,找到返回true,否则false.class Solution {public: bool Find(int target, vector<vector<int> > array) { for(int i=0;i<array.size();i++)//遍历行 { for(int j=0;j<array[0].size();j++)//遍历列 {
2022-05-08 17:11:03
128
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人