前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单链表算法题

单链表算法题

作者头像
用户11290648
发布2024-09-25 14:02:15
480
发布2024-09-25 14:02:15
举报
文章被收录于专栏:学习

实例1.移除链表元素

算法思路:创建两个新链表 phead 和 ptail ,分别指向为空,再创建一个新链表,指向原链表的头节点,再用该链表去遍历原链表,当原链表指向的 val 值不为空时,继续遍历......直到遍历完所有结点。

代码如下:

typedef struct ListNode ListNode; struct ListNode* removeElements(struct ListNode* head, int val) {    ListNode*phead;    ListNode*tail;    phead = tail= NULL;    ListNode*pcur = head;    while(pcur)    {     //链表为空         if(pcur->val !=val)         {             if(phead ==NULL)             {                 phead = tail = pcur;             }             else             {                phead ->next =pcur;                phead = phead->next;             }         }         pcur= pcur->next;    }    if(phead)     {         phead->next=NULL;     }    return tail; }

实例2.反转链表

代码如下: 

typedef struct ListNode ListNode; struct ListNode* reverseList(struct ListNode* head) {     ListNode *n1, *n2, *n3;     if(head==NULL)     return n2;     n1 = NULL, n2 = head, n3 = n2->next;     while (n2) {         n2->next = n1;         n1 = n2;         n2 = n3;         if (n3)             n3 = n3->next;     }     return n1; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实例1.移除链表元素
  • 实例2.反转链表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档