美文网首页
单链表逆序

单链表逆序

作者: andy_tu | 来源:发表于2019-11-14 20:38 被阅读0次

1.创建链表结构

typedef struct NODE{
    int value;
    struct NODE *pNext;
}Node;

2.新建节点

Node *createNode(int value)
{
    Node *p = malloc(sizeof(Node));
    
    p->value = value;
    
    return p;
}

3.打印函数

void printNodeInfo(Node *head)
{
    Node *pCur = head;
    while (pCur) {
        
        NSLog(@"当前节点值:%d", pCur->value);
        pCur = pCur->pNext;
    }
}

4.main函数实现

//链表逆序
- (void)LBNX
{
    Node *pHead = createNode(10);
    
    Node *p1 = createNode(20);
    pHead->pNext = p1;
    
    Node *p2 = createNode(30);
    p1->pNext = p2;
    
    Node *p3 = createNode(40);
    p2->pNext = p3;
    
    Node *p4 = createNode(50);
    p3->pNext = p4;
    
    Node *p5 = createNode(60);
    p4->pNext = p5;
    
    p5->pNext = NULL;
    
    
    printNodeInfo(pHead);
    
    Node *cur = NULL;
    Node *cur1 = NULL;
    Node *cur2 = NULL;
    cur = pHead;
    cur1 = cur->pNext;
    cur2 = cur1->pNext;
    cur->pNext = NULL;
    while (cur && cur1) {
        cur1->pNext = cur;
        cur = cur1;

        if (cur2 == NULL)
            break;

        cur1 = cur2;
        cur2 = cur2->pNext;
        
    }
    
    pHead = cur;
    
    printNodeInfo(pHead);
}

5.打印结果

2019-11-14 20:31:44.959604+0800 逆波兰数[1463:62294] 当前节点值:10
2019-11-14 20:31:44.959726+0800 逆波兰数[1463:62294] 当前节点值:20
2019-11-14 20:31:44.959837+0800 逆波兰数[1463:62294] 当前节点值:30
2019-11-14 20:31:44.959943+0800 逆波兰数[1463:62294] 当前节点值:40
2019-11-14 20:31:44.960042+0800 逆波兰数[1463:62294] 当前节点值:50
2019-11-14 20:31:44.960143+0800 逆波兰数[1463:62294] 当前节点值:60
2019-11-14 20:32:29.903751+0800 逆波兰数[1463:62294] 当前节点值:60
2019-11-14 20:32:29.903971+0800 逆波兰数[1463:62294] 当前节点值:50
2019-11-14 20:32:29.904118+0800 逆波兰数[1463:62294] 当前节点值:40
2019-11-14 20:32:29.904260+0800 逆波兰数[1463:62294] 当前节点值:30
2019-11-14 20:32:29.904392+0800 逆波兰数[1463:62294] 当前节点值:20
2019-11-14 20:32:29.904517+0800 逆波兰数[1463:62294] 当前节点值:10

相关文章

  • LeetCode 2. Add Two Numbers

    单链表逆序相加

  • Leetcode-Medium-2 Add Two Number

    题目 思路 给定两哥数字非负的单链表,每条单链表逆序存储着一个数字。将两条单链表存储的数字相加,并逆序放入单链表中...

  • 逆序单链表

    1、对一个单链表进行逆序操作。逆序之前为 head-->A-->B-->C-->None逆序之后为 head-->...

  • 单链表逆序

    1.创建链表结构 2.新建节点 3.打印函数 4.main函数实现 5.打印结果

  • 2.单链表

    该部分包含以下内容-单链表的增删改查-计算链表长度-逆序链表-寻找(删除)链表倒数第K个元素-逆序打印链表(使用栈)

  • leetcode 单链表的各种算法

    1 递归实现:合并两个有序的单链表 2 递归实现:单链表逆序存入vector 3 循环实现:快慢指针找到单链表中间...

  • 双向链表

    1、双向链表 单链表只能从头结点first开始访问链表中的数据元素,如果需要逆序访问单链表中的数据元素将极其低效。...

  • 逆序打印单链表

    题目描述: 逆序打印单链表,要求不能改变链表结构。 思路分析: 由于单链表只能顺序遍历(从头到尾遍历)而不能逆向遍...

  • 单链表 常用操作(golang)

    (单链表备忘记录)知识点: 单链表结构 创建链表方法头插法创建尾插法创建 遍历链表 逆序反转链表迭代递归头插法就地...

  • 关于单链表、双向列表的一些算法

    首先给出数据定义的结构 单链表 1.单链表的逆序反转 单链表相邻节点反转 A-B-C-D 输出 B-A-D-C 双...

网友评论

      本文标题:单链表逆序

      本文链接:https://www.haomeiwen.com/subject/qqjdictx.html