【C++】ListNode类leetcode测试

leetcode的ListNode无头节点,head指向链表的首地址

//.h文件
class ListNode
{
public:
	int val;
	ListNode *next;
public:
	//官方三种构造
	ListNode():val(value),next(nullptr){};
	ListNode(int value):val(value),next(nullptr){};
	ListNode(int value,ListNode *next):val(value),next(nullptr){};
	//自定义构造
	ListNode(int arr[],int n)~ListNode();
public:
	void printList();
}

//.cpp文件
ListNode::~ListNode()
{
	while(this->next)
	{
		ListNode *tmp = this->next;//暂存第二个节点的地址
		this ->next = this->next->next;//修改连接,指向第三个节点地址
		tmp->next = NULL;//被删节点的next赋空值
		delete tmp;//第二个节点是被删节点
	}
}

ListNode::ListNode(int arr[],int n);
{
	this->val = arr[0];this->next =nullptr;
	ListNode *current = this;
	for(int i = 1;i<n;i++) //遍历n-1次
	{
		current->next = new ListNode(arr[i]);
		current = current->next;//指向下一个节点
	}
}

void ListNode::printList()
{
	ListNode *current = this;
	while(current)
	{
		printf("%d",current->val);
		if(current->next!=NULL)
			printf("->");
		current = current->next;//指向下一个节点
	}
}

测试:

//另一.cpp文件
int main()
{
	int array[5] = {1,2,3};
	ListNode Node(array,3);
	ListNode* head = &Node;
	head->printList();
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值