java反转单链表 (三种方法整理),反转链表java
java中反转单链表的方法有很多。在这里,记录一个并附上详细步骤:
代码如下所示
/***单链表的定义。*公共类ListNode { * int val* ListNode next* list node(int x){ val=x;} * } */public class Solution { public ListNode reverse list(ListNode head){ ListNode pre;ListNode温度;pre=头;//前任节点ListNode cur=head.next //当前节点while(cur!=null cur.next!=null){ temp=cur . next;//(1)cur . next=pre;//(2)pre=cur;//(3) cur=温度;//(4)} head.next=null //原头节点,反向尾节点返回pre//主操作在原尾节点反转后的while循环中}}下图说明了如何反转单链表:首先java中没有指针的概念,但是可以看到ListNode中的next属性实际上代表的是指向下一个节点的“指针”,所以可以这样理解:
1、原单链表:
假设单个链表有三个元素[1,2,3],0就是上面提到的head对象。
2、执行(1)、(2)后:
Cur.next指向n.next:
3、执行(3):
4、执行(4):
第一次循环结束,第一次循环后的单链表如上图所示。可恶!=null cur.next!=null,因此执行第二个循环:
5、第二次执行(1),(2):
6、第二次执行(3):
7、第二次执行(4):
Cur.next==null来推出上面的循环,实现单链表的倒排。
这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持它的盛行。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。