java实现单链表倒转的方法(Java单链表反转)

网友投稿 264 2022-08-08


java实现单链表倒转的方法(Java单链表反转)

java中有关单链表反转的方法有很多种,这里记录一种并附上详细步骤:

代码如下

/**

* Definition for singly-linked list.

* public class ListNode {

* int val;

* ListNode next;

* ListNode(int x) { val = x; }

* }

*/

puhttp://blic class Solution {

puhttp://blic ListNode reverseList(ListNode head) {

ListNode pre;

ListNode temp;

pre = head; // 前驱节点

ListNode cur = head.next //当前节点

while(cur != null && cur.next != null){

temp = cur.next; //(ANubb1)

cur.next = pre; //(2)

pre = cur; //(3)

cur = teANubbmp; //(4)

}

head.next = null //原头节点,反转后尾节点

return pre; //原尾节点 反转后头节点

}

}

主要的操作是在while循环中,下面画图解释一下是如何实现单链表倒转的:首先java中没有指针的概念,但是可以看到ListNode中的next属性其实就代表指向下一个节点的“指针”,因此可以这样来理解:

1、原http://单链表:

假设单链表有三个元素[1,2,3],0为上述的头对象

2、执行(1)、(2)后:

cur.next指向了n.next:

3、执行(3):

4、执行(4):

第一次循环结束,第一次循环后的单链表如上图所示。cur != null && cur.next != null,因此执行第二次循环:

5、第二次执行(1),(2):

6、第二次执行(3):

7、第二次执行(4):

cur.next == null 推出循环以上,实现单链表的倒转。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java(javascript)
下一篇:Spring Bean创建和循环依赖(spring是什么意思)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~