单链表逆序

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上一篇文章也讲的单链表的逆序,但我没有详细的将过程写出来。这让读者不能够更加快速的理解我写的代码的原理,是我的疏忽...
    DKider阅读 1,875评论 0 5
  • 被压抑的情感并不会消失,累积到一定程度后,反而以更丑恶的方式爆发出来,有些精神病就是这样造成的。若是一味压抑,不能...
    DKider阅读 1,308评论 0 5
  • 题目给定一个带头节点的单链表:head->1->2->3->4->5->6->7->8使其成为:head->8->...
    DKider阅读 1,340评论 0 4
  • 前言 将单链表逆序,方法有三种: 遍历链表,将每个节点的内容存入一个数组中,然后逆序输出数组,并重新构造一个链表 ...
    GrayMonkey阅读 6,287评论 0 3
  • 题目:给定一个带附加头节点的单链表,设first为其头指针,节点的结构为(data,link),data为数据域,...
    秦萍健阅读 498评论 0 2