- 浏览: 63045 次
- 性别:
- 来自: 北京
最新评论
求链表中间节点的值,检测链表的环
int loop(struct Node* head){ struct Node* p1 = head; struct Node* p2 = head; int i = 0; while(p1 && p2){ i++; if(i!=1){ if(p1->value == p2->value){ printf("%d\n",i); return 1; } } p1 = p1->next; if(p2->next != null){ p2 = p2->next->next; }else{ return 0; } } printf("%d\n",i); return 0; } int middle(struct Node* head){ struct Node* p1 = head; struct Node* p2 = head; while(p2){ p2 = p2->next; if(p2 != null){ p1 = p1->next; p2 = p2->next; } } return p1->value; } int main(int argc,char *argv[]){ /** struct Node* head = create(); print(head); struct Node* x = malloc(sizeof(struct Node)); x->value = 1; delete(x,&head); print(head); **/ struct Node* p1 = malloc(sizeof(struct Node)); p1->value = 1; struct Node* p2 = malloc(sizeof(struct Node)); p2->value = 2; struct Node* p3 = malloc(sizeof(struct Node)); p3->value = 3; struct Node* p4 = malloc(sizeof(struct Node)); p4->value = 4; struct Node* p5 = malloc(sizeof(struct Node)); p5->value = 5; p1->next = p2; p2->next = p3; p3->next = p4; p4->next = p5; p5->next = null; printf("中间节点数值:%d\n",middle(p1)); return 0; }
发表评论
-
实习前记
2012-07-16 15:27 757经过回来一周的找工作,总体感觉就是很累啊,每天东跑西颠的。面了 ... -
php函数参数列表
2012-05-11 16:50 1429[size=medium] 1.直接传值 function ... -
php的ob_flush和flush
2012-05-10 21:20 1106php.ini中 output_buffering = of ... -
php读文件的4中方法。
2012-05-10 20:38 906fopen $fp = fopen("downl ... -
百度笔试算法题一道。
2012-05-10 15:02 985一个数组a[0-n-1],a[0-mid]和a[mid+1-n ... -
自己实现php UTF8中文字符串截取
2012-05-09 11:38 2881header("Content-type: te ... -
C与C++动态分配,释放内存的区别
2012-05-08 17:30 160601. malloc()函数 1.1 malloc的 ... -
nginx rewrite
2012-05-04 11:23 0http://blog.cafeneko.info/2010/ ... -
php magic method
2012-05-04 11:16 895php的魔术方法总结 php的魔术方法都是和类有关的。 ... -
诡异的 shell 08 bug
2012-04-30 01:11 770v=08 echo $v shell里以0开头的都会把它当作8 ... -
排序相关
2012-04-22 16:01 0排序分类 内排序: 交换式排序: ... -
php string
2012-04-22 11:33 970一.字符串类型 php一共有8中数据类型 ... -
简单的树的递归、非递归创建,前序中序后序遍历
2012-04-21 10:03 1070c语言写着还挺带感 #in ... -
php 深度优先递归输出路径下所有文件
2012-04-19 21:27 1523<?php $dir = " ... -
简单的栈
2012-04-19 21:14 704#include <stdio.h> #de ... -
简单的循环队列
2012-04-19 21:13 804#include <stdlib.h> ... -
单链表删除一个节点
2012-04-19 21:10 9853有头结点的情况,附加一个逆置 #include <s ... -
KMP与BF,实现了一个非主流next函数
2012-04-19 20:16 928#include <stdlib.h> #i ... -
ip过滤问题
2012-03-22 21:09 0假设有很多段ip段属于教育网的,如何尽快辨别一用户ip是否属于 ... -
求三叉树高度
2012-03-18 17:05 3145有12345个结点的满3叉数的高度为_____写出计算过程 ...
相关推荐
而`head.h`则可能定义了链表节点的结构体和相关的递归函数。例如,链表节点可能定义如下: ```cpp struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; ``` 递归函数的...
4. **查找中间节点**:查找并返回链表的中间节点的值。 #### 三、创建链表 在`CreateList`函数中,程序首先要求用户输入链表的长度,然后创建一个头节点,并将其`next`字段设置为`NULL`。接着,通过一个循环,每次...
数据结构 初始化链表,插入删除节点,遍历链表,链表长度,找出中间节点
在C语言编程中,链表是一种非常重要的数据结构,它不同于数组,不需要预先分配连续的内存空间,而是通过节点间的...本压缩包提供的编程题目就是一个很好的实践机会,通过实际编写代码来加深对链表中间节点查找的理解。
这是一个单向链表,它具有插入与删除节点的功能。Entry类实现了链表的各节点。
这个方法的关键在于,它利用了链表节点的数据交换特性,而不是传统的通过前一个节点来修改`next`指针的方式。这种方法对于单链表中没有前向引用的情况非常有用。然而,需要注意的是,此方法不适用于删除链表的最后一...
一个简单的链表节点通常包括两个部分:数据域(用于存储数据)和指针域(用于链接到下一个节点)。在C语言中,这可以表示为: ```c typedef struct Node { int data; // 数据域,这里假设节点存储整型数据 struct...
在C语言中,我们首先需要定义链表节点的数据结构。通过结构体(struct)来实现这一点。示例代码如下: ```c #include "stdio.h" #include "stdlib.h" struct node { int num; // 数据域,存储整型数据 struct ...
最后,将链表项结构体`xListEnd`的前一个链表项和下一个链表项的指针设置为指向自己,以便在链表为空时能够检测出来。 在链表头节点的初始化过程中,还需要初始化链表结构的其他字段,如链表项的所有者`pvOwner`和...
在C++中,我们可以定义一个结构体`Node`来表示链表节点,其中包含一个整型数据`data`和一个指向下一个节点的指针`next`: ```cpp typedef struct Node{ int data; struct Node* next; } node, *pLinkedList; ``` ...
在本场景中,我们讨论的是一个名为“链表节点类”的实现,它专门用于管理链表中的节点指针,并提供了两种不同的节点提取方式:先入先出(FIFO,First In First Out)和遍历提取。 首先,`NodeQueue`可能是实现了一...
尤其是,当用链表描述不同的数据结构时,节点结构体的定义都是不同的,这就需要为每一种链表都写一套诸如插入、删除节点之类的操作代码。 本程序就是为了解决这个问题,将双向链表的基本操作写成了一套通用程序,...
华为OD机试 - 单向链表中间节点(Java & JS & Python & C & C++).html付费专栏内容,免费下载,多种语言解法
数据结构经典算法演示,这里是链表-插入节点的代码演示
// 查找链表中间结点 Node* findMiddleNode(Node* head) { Node* slow = head; Node* fast = head; if (head != NULL) { fast = fast->next; } while (fast != NULL && fast->next != NULL) { slow = slow-...
2. **选择头部节点**:比较两个链表头部节点的值,选取较小者作为新链表的头部,然后递归地调用 `MergeRecursive` 函数,处理后续的链表节点。 3. **递归调用**:如果 `head1` 的值小于 `head2`,则 `head1` 成为新...
根据给定文件的信息,本文将围绕“递归链表中值最大的节点”这一主题进行深入探讨,主要包括链表的基本概念、链表的遍历与插入操作、递归查找链表中最大值节点的方法以及示例代码分析。 ### 链表的基本概念 链表是...
`ListNode`结构体定义了链表节点的数据结构,包括一个整型值`val`和一个指向下一个节点的指针`next`。`ListNode(int x)`构造函数用于初始化一个新的节点,给定的参数`x`将被赋值给`val`,`next`初始设为`nullptr`。 ...