【数据结构】单链表的倒置
发布时间:2020-12-15 05:59:52 所属栏目:安全 来源:网络整理
导读:关于单链表的倒置: 在面试过程中,笔试中会考到许多数据结构的面试题,我们来看一个不是很难的单链表逆置,许多笔试题中都有可能出现这个单链表的逆置。 在这些题中,往往是不存在哨兵位,而给的是一个头指针。什么是哨兵位呢。 哨兵位:创建一个头结点,头
关于单链表的倒置: 在面试过程中,笔试中会考到许多数据结构的面试题,我们来看一个不是很难的单链表逆置,许多笔试题中都有可能出现这个单链表的逆置。 在这些题中,往往是不存在哨兵位,而给的是一个头指针。什么是哨兵位呢。 哨兵位:创建一个头结点,头结点中不存任何数据,将头结点的_next指向单链表中的第一个数据节点。 这样也许会带来很多便利,面试中往往是不给予头结点的。 给的是一个头指针。我们来看一下吧=。=: 单链表结构体: typedefintDataType; typedefstructLinkNode { DataType_data; structLinkNode*_next; }LinkNode,*PLinkNode; 单链表逆置的算法代码: voidReverseLink(PLinkNode&pHead) { PLinkNodetemp=pHead; PLinkNodecur=NULL; pHead=NULL; while(temp) { cur=temp->_next; temp->_next=pHead; pHead=temp; temp=cur; } } 单链表的算法思维: 第一次: 创建2个指针。一个保存当前指针的下一个。 cur=temp->_next; 一个保存当前所需要逆置的指针: PLinkNodetemp=pHead; temp=cur; 首先取出第一个指针,然后将temp->_next置为NULL。 temp->_next=pHead;//此时pHead已经为NULL 然后将pHead指向temp: pHead=temp; 最后将temp指向下一个将要逆置的指针: temp=cur; 第二次: 单链表的逆置大体思路就是:
这就是单链表逆置的思想,只用遍历一次链表就可以完成。 QWQ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |