链表题

·  阅读 103

单链表:

        Q:单链表的反转

     思路:1. 先定义一个新的头节点 reverseHead = new Node();

               2. 从头到尾遍历原链表,每遍历一个节点,将其取出,并放在链表的最前端

 ㅤ    ㅤ    ㅤ   

               3. 原来链表的Head.next=reverseHead.next

         示例代码:

   while里的操作:

   next 存到2,然后把cur这个点的尾指针指向newHead的最前面,然后把newHead的头节点尾指针指向cur,

   然后cur后移一个。

        Q :   求单链表中有效的节点个数(带头结点的)

思路: 循环,如果节点的下一个不为空,则节点存在,节点向后移。直至某个节点的下一个为空,返回有效节点个数。

        Q:  查找单链表中的倒数第k个节点

    思路:把链表从头到尾遍历,得到链表总长度(size),然后从第一个遍历到 size-k 个

 Q: 从尾到头打印单链表

思路: 利用栈结构,将各个节点压入到栈(先进后出)中,然后将其取出,即实现从尾到头打印

 Q: 约瑟夫问题、丢手帕问题(单项环形列表):

 思路:

分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改