数据结构_数据结构_链表面试题----- 删除非尾无头链表

删除非尾无头链表

首先要理解什么是无头结点的链表,什么是有头结点的链表,要是连这个都理解错了,就完了: 
无头结点的链表:第一个节点既有数据域,又有指针域,是通过一个指向该链表的第一个节点的指针来标记该链表的。 
这里写图片描述

有头结点的链表:第一个节点只有指针域,该指针域存放的是指向链表下一个节点的指针(或NULL),该链表通过头结点来标记。 
这里写图片描述

无奈很多人把无头结点理解为了这样: 
这里写图片描述
然后他就一直想,没有头,怎么能找到该链表啊,一直想,一直想。。。。。。最后还是放弃了,脑海里想着这题出错了吧。

PS:上面两张图片放的是最简单的无头结点的链表和有头结点的链表的形式。


// 删除非尾无头链表 
//首先,我们先建立一个节点pCur,令节点pCur指向要删除的节点pos的下一个节点,然后,我们先把pCur的值赋给pos, 然后再删除掉pCur这个节点,
void RemoveNodeNotTail(SListNode *pos)
{
	assert(pos != NULL);

	SListNode *pCur = pos->pNext;

	// 让 pos 的下一个指向 原来下一个的下一个
	pos->pNext = pCur->pNext;
	pos->data = pCur->data;

	free(pCur);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java数据结构面试题很广泛,其中包括对常用数据结构如ArrayList、HashMap等的理解和使用。一个常见的面试题是关于Iterator的使用,可以通过以下代码来遍历一个ArrayList中的元素: ```java List<String> list = new ArrayList<>(); Iterator<String> it = list.iterator(); while(it.hasNext()){ String obj = it.next(); System.out.println(obj); } ``` 另外,面试中也可能会涉及到其他数据结构的问题,比如HashMap。HashMap是一种基于散列的数据结构,它实际上是一个数组和链表的结合体。可以使用数组来保存数据,通过散列函数将键映射到数组的索引位置,当发生哈希冲突时使用链表来解决。这个特性使得HashMap在查找、插入和删除操作上有着较高的效率。 此外,Java面试大集合中也包含了其他技术栈的面试题,如MyBatis、ZooKeeper、Dubbo等,覆盖了广泛的Java开发领域。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Java集合面试题(总结最全面的面试题!!!)](https://blog.csdn.net/weixin_43122090/article/details/103707351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [java面试大集合一共485页](https://download.csdn.net/download/wm9028/88268176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值