链表概念:与数组不同,链表中的元素不是存储在内存中的连续区域,链表中的数据存储在称为“节点”的每个复合体中在区域中,每个节点除了存储数据外,还保存了指向下一个节点的指针(Pointer)。由于不必按顺序存储,链表在插入数据时可以达到O(1)O(1)的复杂度,但是查找一个节点或者访问特定数量的节点需要O(n)的时间.应用HashMapNode节点,Node节点有自己的值和下一个点://HashMapNode源码部分staticclassNodeimplementsMap.Entry{finalinthash;最后的K键;V值;下一个节点;Node(inthash,Kkey,Vvalue,Nodenext){this.hash=hash;this.key=键;this.value=值;这个.下一个=下一个;}}LinkedListNode节点使用双链表//LinkedList部分源码privatestaticclassNode{Eitem;下一个节点;节点上一个;Node(Nodeprev,Eelement,Nodenext){this.item=element;这个.下一个=下一个;this.prev=prev;}}题目描述解题思路单链表的反转是改变链表的方向,从左到右变成从右到左。主要的解题思路是拆分各个指针。上图从1到2变成2到1,也就是需要设置2个节点的next=1。在进行指向更改之前,必须先保存2个节点中的next,然后更改2个节点中的next:创建一个空列表节点,用于存储反向链表。存储链表的下一个。链表的下一个指向节点。当前链表分配给节点。循环下一个节点Java解题代码:classSolution{publicListNodereverseList(ListNodehead){ListNodecur=head;//创建一个空链表ListNodenode=null;while(cur!=null){//存储下一个ListNodenext=cur.next;//当前链表指向新链表cur.next=node;//将当前节点赋值给节点node=cur;//遍历下一个节点cur=next;}返回前;}}如果您觉得文章对您有帮助,请点个赞吧!