C语言笔记30 •单链表经典算法OJ题-2.移除链表元素•

移除链表元素

1.问题

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

2.代码实现:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>



typedef int SLTDataType;

typedef struct SListnode
{
	SLTDataType val;
	struct SListnode* next;
}ListNode;

ListNode* createNode(SLTDataType val)
{
	ListNode* newnode = (ListNode*)malloc(sizeof(ListNode));
	if (newnode == NULL)
	{
		perror("malloc");
		exit(1);
	}
	newnode->val = val;
	newnode->next = NULL;
	return newnode;
}



struct ListNode* removeElements(struct ListNode* head, int val)
{
	ListNode* pur = head;

	ListNode* newhead, *newtail;//创建新链表
	newhead = newtail = NULL;//表头 表尾初始化

	while (pur)
	{
		if (pur->val != val)
		{
			if (newhead == NULL)
			{
				newhead = newtail = pur;
			}
			else
			{
				newtail->next = pur;
				newtail = newtail->next;
			}
		}
		pur = pur->next;
	}
	if (newtail)
	{
		newtail->next=NULL;
	}
	return newhead;
}

int main()
{
	ListNode* node1, * node2, * node3, * node4, * node5, * node6, * node7;

	node1        =        createNode(1);
	node2 = node1->next = createNode(2);
	node3 = node2->next = createNode(6);
	node4 = node3->next = createNode(3);
	node5 = node4->next = createNode(4);
	node6 = node5->next = createNode(5);
	node7 = node6->next = createNode(6);//创建一个链表

	ListNode* newhead = removeElements(node1, 6);//移除链表元素:6

	while (newhead)
	{
		printf("%d ", newhead->val);
		newhead = newhead->next;
	}
	return 0;
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 09:52:03       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 09:52:03       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 09:52:03       90 阅读
  4. Python语言-面向对象

    2024-07-10 09:52:03       98 阅读

热门阅读

  1. Jetson-AGX-Orin离线安装nvidia-jetpack

    2024-07-10 09:52:03       25 阅读
  2. 2024前端面试真题【CSS篇】

    2024-07-10 09:52:03       28 阅读
  3. 如何使用echart画k线图

    2024-07-10 09:52:03       29 阅读
  4. 【国产开源可视化引擎】Meta2d.js简介

    2024-07-10 09:52:03       31 阅读
  5. 【C语言】常见的数据排序算法

    2024-07-10 09:52:03       29 阅读
  6. MySQL 聚合函数

    2024-07-10 09:52:03       30 阅读
  7. 在Spring Boot中实现RESTful API设计

    2024-07-10 09:52:03       26 阅读
  8. XML的两种常用的模式定义方式

    2024-07-10 09:52:03       19 阅读