今天看代码随想录瞄到一个笔试很重要的点,手写链表节点,这种一般在OJ上面都是定义好的,手写还真不会,C++的时候也没有细看结构体构造函数。今天复习一下。
//结构体
struct student{
int id;
string name;
student(){} //构造函数
}zhuXiaoTian;
//定义结构体并创建一个变量名叫zhuXiaoTian的结构体
int main(){
//注意注意!!!!!!,这里是声明一个zhuXiaoTian,不是指针不是指针不是指针!!!!!指针要用->访问成员
zhuXiaoTian.id = 1;
zhuXiaoTian.name = "zhu";
//或者构造函数
zhuXiaoTian={1,"zhu"};
}
可以自定义构造函数
//结构体
struct student{
int id;
string name;
/*student(int _id,string _name){
id = _id;
name = _name;
} */ //错误的写法,不是这样构造的
student(int _id,string _name):id(_id),name(_name){} //这里没有分号!!!!!!!!
};
//定义结构体并创建一个变量名叫zhuXiaoTian的结构体
int main(){
struct studen zhuXiaoTina;
zhuXiaoTian.id = 1;
zhuXiaoTian.name = "zhu";
//或者构造函数
zhuXiaoTian={1,"zhu"};
return 0;
}
链表的节点定义为:
struct ListNode{
int val; //节点值
ListNode *nextNode; //指向下一个节点的指针
ListNode(int x):val(x),nextNode(nullptr);
}
int main(){
//不通过构造函数构造
ListNode *head = new ListNode();
ListNode->val = 5; //注意注意!!这是指针,或者使用(*ListNode).val = 5;
//通过构造函数构造
ListNode *head = new ListNode(5);
return 0;
}