算法题
反转链表
206. 反转链表 - 力扣(LeetCode)

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(!head)return head;//如果只有一个节点,那么直接返回这个节点
ListNode*cur=head,*pre=nullptr;
while(cur){
ListNode*next=cur->next;//设置下一个节点是cur的下一个节点
cur->next=pre;//将cur与前一个空节点相连接
pre=cur;//pre向后移动到cur
cur=next;//cur向后移动
}
return pre;//遍历结束此时的cur指向空。返回pre
}
};
基础知识
enum类型的作用与用法
枚举是编译阶段的宏,用于定义一组命名的常量值,它可以让数据更简洁,更易读。
枚举型是预处理指令#define的替代。
可以自己设置枚举内的数值
用法:enum 变量名{参数
}
不能存在同名的类型名,不能存在同名的枚举成员
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
C/C++ 中有哪些常见的运算符?
C/C++中的运算符分为,算术运算符,逻辑运算符,关系运算符,位运算符,赋值运算符
算术运算符
| + | 加法运算 |
| - | 减法运算 |
| * | 乘法运算 |
| / | 除法取商 |
| % | 除法取余数 |
| ++ | 自增 a++先赋值再加加,++a,先加加再赋值 |
| -- | 自减 a--先赋值再减减,--a,先减减再赋值 |
逻辑运算符
| || | 或,都为0的时候才会为0 |
| && | 并且,全为1的时候才为1 |
| ! | 非,遇到0变1,遇1变0 |
关系运算符
| == | 判断是否相等 |
| != | 判断是否相等 |
| >= <= | 大于等于,小于等于 |
| > < | 大于,小于 |
位运算符
| & | 与,同1则为1 |
| | | 非,同0则为0 |
| ^ | 异或 |
| >> | 右移 |
| << | 左移 |
赋值运算符
| += | 先相加再赋值 |
| -= | 先相减再赋值 |
| *= | 先相乘再赋值 |
| /= | 先取商再赋值 |
| %= | 先取余再赋值 |



















