首页 > 其他分享 >单链表翻转

单链表翻转

时间:2022-10-26 21:36:25浏览次数:47  
标签:head 单链 ListNode val int next NULL 翻转


使用语言:c++。

#include <iostream>
using namespace std;

//链表
struct ListNode
{
int val;
ListNode *next;
ListNode(int val, ListNode *next = NULL) :val(val), next(next){}
};

//翻转链表
ListNode* ReverseList(ListNode* head){
ListNode *p = NULL,*q=NULL;
while (head)
{
q = head->next;
head->next =p;
p = head;
head = q;
}
return p;
}
//输出
void printList(ListNode* head){
ListNode *p = head;
while (p)
{
cout << p->val<<" ";
p = p->next;
}
cout << endl;
}

int main()
{
ListNode *head=NULL,*p=NULL,*tail=NULL;
//反向构造数据,没有头结点
for (int i = 0; i < 10; i++)
{
p = new ListNode(i);
p->next = head;
head = p;
}

printList(head);

tail = ReverseList(head);

printList(tail);

return 0;
}

程序输出:

9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9
请按任意键继续. . .


标签:head,单链,ListNode,val,int,next,NULL,翻转
From: https://blog.51cto.com/u_15847885/5798573

相关文章

  • 【leetcode_C++_字符串_day7】344_反转字符串&541_反转字符串II&&剑指Offer_05_替换空
    344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)......
  • 翻转排序 (sort)
    翻转排序(sort)题目描述Alex得到了存放着一个1-n排列的容器。这个容器支持的唯一操作,是翻转排列的某一段。思考很久之后,他决定用以下方式让这个排列有序: 1找到每一个极大......
  • CH32V307 IO翻转速度测试
    CH32V307IO翻转速度测试记录RISC-VMCUCH32V307IO极限翻转速度。测试代码如下:/**********************************************************************@fn......
  • 单链表c语言实现网上查找
    插入#include<malloc.h>#defineSIZE100#defineINCREMENT_SIZE10typedefstructLNode{intdata;LNode*next;}LNode,*LinkList;//creataLinkLi......
  • 单链表插入和删除一个节点的伪代码算法
    插入设ai-1节点为pai+1节点为q插入节点为t则p-->t-->next=q-->next删除设ai-1节点为pai+1节点为q删除的字节为tp-->next=t-->nextfree(t)参考链接https://bl......
  • 参考图中删除节点的链表,写出单链表插入和删除一个节点的伪代码算法。 节点包含数据dat
    单链表的插入:定义列表a=[a1,a2......ai-1,ai+1......an-1,an]cym-1-->节点p,cym+1-->节点q(此时p->next=q)设插入元素cym为节点xx->next=p->nextp->next=x单链表......
  • 单链表
    单链表单链表指的是线性表的每个结点分散地存储在内存空间中,先后依次用一个指针串联起来。单链表可以分为:不带表头结点和带表头结点两种。不带表头结点的单链表......
  • 单链表的插入和删除
    单链表插入定义链表a=[a₁,a₂,a₃······ai-1,ai+1······an-1,an]ai-1-->节点p,ai+1-->节点q(此时p->next=q)设插入元素ai为节点xp->next=xx->next=q......
  • 每日算法2:翻转字符串
    题目描述:判断字符串中重复次数最多的字符//解决思路://1.判断字符重复的方法//创建空数组,利用键值对形式对每个字符进行计数//用到采用for循环结合if判断对象......
  • 单链表插入和删除一个节点的伪代码
    在单链表第i个元素之前插入元素e伪代码算法描述:(1)首先,定义一个指针p和计数因子j,并给计数因子j赋初值0(2)接着,用while循环开始遍历单链表,寻找第i-1个结点while循环条件:指针p不......