java非递归实现单链表反转
2017-11-17 00:02
260 查看
今天晚上看了IT名企算法与数据结构最优解的关于单链表的反转问题,刚开始自己也理解了一会。后面突然就豁然开朗了。
首先,我们申明一个链表类。
因为在对链表进行反转的时候,需要更新每一个node的“next”值,但是,在更新 next 的值前,我们需要保存 next 的值,否则我们无法继续。所以,我们需要两个指针分别指向前一个节点和后一个节点,每次做完当前节点“next”值更新后,把两个节点往下移,直到到达最后节点。
代码如下:
首先,我们申明一个链表类。
//链表类 class Node{ public int data; public Node next; public Node(int data){ this.data=data; } }
因为在对链表进行反转的时候,需要更新每一个node的“next”值,但是,在更新 next 的值前,我们需要保存 next 的值,否则我们无法继续。所以,我们需要两个指针分别指向前一个节点和后一个节点,每次做完当前节点“next”值更新后,把两个节点往下移,直到到达最后节点。
代码如下:
public Node resverList(Node head){ Node pre=null; Node next=null; while(head!=null){ next = head.next; head.next=pre; pre=head; head=next; } return pre; }
相关文章推荐
- java实现单向链表CRUD,反转,排序,查找倒数第k个元素,递归输出等操作
- java-实现链表反转-递归和非递归实现
- 单链表反转(非递归java实现)
- java实现单链表反转(递归方式)
- 链表反转(java实现)递归非递归
- JAVA实现单向链表反转2
- 反转链表(递归和非递归实现)
- 链表反转C实现(递归与循环)
- C递归实现单向链表的反转
- 递归实现链表反转
- Java中单链表的实现和单链表的反转(倒置)
- 递归和非递归实现链表反转
- 【剑指offer】链表相关-反转链表&&递归实现16
- 链表反转的实现(递归反转链表,非递归反转链表)
- 单链表反转的循环及递归实现
- 反转链表的Java实现
- 反转链表递归和非递归实现(面试题 16)
- C递归实现单向链表的反转
- 反转链表_Java实现
- Java单双链表的创建、反转与递归反转