双向链表的查找节点。

该博客详细解析了如何在双向链表中查找指定数据的节点。通过使用right指针从表头开始遍历,直到找到目标数据节点或到达链表末尾。若找到节点则返回,否则返回NULL。
摘要由CSDN通过智能技术生成

文章摘自http://www.rzchina.net/forum/34

考点:双向链表的操作
出现频率:★★★★
解析:
使用right指针遍历,直至找到数据为data的节点,如果找到节点,返回节点,否则返回NULL。
1       //查找节点,成功则返回满足条件的节点指针,否则返回NULL
2         DbNode *FindNode(DbNode *head, int data)   //参数1是链表的表头节点
3         {                                          //参数2是要查找的节点,其数据为data
4                DbNode *pnode = head;
5      
6                if (head == NULL)                     //链表为空时返回NULL
7                {
8                         return NULL;
9                }
10    
11              /*找到数据或者到达链表末尾退出while循环*/
12              while (pnode->right != NULL && pnode->data != data)
13              {
14                       pnode = pnode->right;             //使用right指针遍历
15              }
16    
17              //没有找到数据为data的节点,返回NULL
18              if (pnode->right == NULL) 
19              {
20                       return NULL;
21              }
22
23              return pnode;
24     }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值