栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++中ListNode线性链表的定义及其使用方法(Leedcode两数相加题目)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++中ListNode线性链表的定义及其使用方法(Leedcode两数相加题目)

1. ListNode线性链表定义
struct ListNode{
	int val;
	ListNode *next;
	ListNode() : val(0),next(NULL){}
	ListNode(int x) : val(x), next(NULL){}
	ListNode(int x, ListNode *next) : val(x), next(next){}
}; 
2.ListNode线性链表使用方法(在main中测试)

c++中使用new定义的变量和不使用new定义的变量

假设有一个类CTest,现定义两个CTest的对象
CTest t1;
CTest *t2 = new CTest();
1.本质不同
t1为类对象。
t2为类对象的指针。

2.作用域不同
t1作用域限制在定义类对象的方法中,当方法结束时,类对象也会被系统释放,不需要手工释放,安全不会造内存泄露。
t2作用域为全局,当程序结束时,需要使用delete进行手工释放,系统不会自动释放,如果忘记释放,容易造成内存泄露

3.内存中存放地址不同
t1存放在堆中。
t2存放在栈中。

//边定义边赋值,new一个新的节点 
ListNode *l3 = new ListNode(12);
cout << l3->val << endl;
delete(l3);


//在既定范围内定义一个节点 
ListNode vHead(3);
ListNode p = vHead;         //将当前地址赋值给p,使得p指向当前节点 
cout << vHead.val << endl;
cout << p.val <val << endl; 
//定义一个节点时,默认赋值,使用ListNode():val(0),next(NULL){}
ListNode vHead2;
cout << vHead2.val << endl; 

创建一个长链表:

ListNode *L = new ListNode();
ListNode *l1 = new ListNode(2);
ListNode *l2 = new ListNode(3);
ListNode *l3 = new ListNode(4);
L->next = l1;
l1->next = l2;
l2->next = l3;
ListNode *p = L->next;
while(p != NULL){
	cout << p->val << endl;
	p = p->next;
}
3.leetcode题目

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347910.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号