【剑指offer——JAVA实现】反转链表(含思路解答示意图)
2018-04-08 09:37
519 查看
【考点:代码的鲁棒性】反转链表题目描述
输入一个链表,反转链表后,输出链表的所有元素。解题思路
三个指针,pre、head和next,每次让【head指向的节点】指向【pre指向的节点】,然后遍历,即可完成。解题代码/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null) return null;
ListNode pre = null;
ListNode next = head.next;
while(head != null) {
//反转当前节点的指向
head.next = pre;
//移动指针
pre = head;
head = next;
//保存下一个遍历节点
if(head != null)
next = head.next;
}
return pre;
}
}当然,为了看起来优雅一点,上面的代码可以稍微调整一下public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null) return null;
ListNode pre = null;
ListNode next = null;
while(head != null) {
//反转当前节点的指向
next = head.next;
head.next = pre;
//移动指针
pre = head;
head = next;
}
return pre;
}
}更多算法解答请点击《剑指offer》66题JAVA代码算法实现全集
输入一个链表,反转链表后,输出链表的所有元素。解题思路
三个指针,pre、head和next,每次让【head指向的节点】指向【pre指向的节点】,然后遍历,即可完成。解题代码/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null) return null;
ListNode pre = null;
ListNode next = head.next;
while(head != null) {
//反转当前节点的指向
head.next = pre;
//移动指针
pre = head;
head = next;
//保存下一个遍历节点
if(head != null)
next = head.next;
}
return pre;
}
}当然,为了看起来优雅一点,上面的代码可以稍微调整一下public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null) return null;
ListNode pre = null;
ListNode next = null;
while(head != null) {
//反转当前节点的指向
next = head.next;
head.next = pre;
//移动指针
pre = head;
head = next;
}
return pre;
}
}更多算法解答请点击《剑指offer》66题JAVA代码算法实现全集
相关文章推荐
- 【剑指offer——JAVA实现】链表中倒数第k个结点(含思路解答示意图)
- 剑指offer 01-06解答思路以及代码(顺序数组找特定数字,替换空格字符,链表反转输出,重建二叉树,两个栈实现队列效果,旋转数组最小元素)
- 【剑指offer——JAVA实现】包含min函数的栈(含思路解答示意图)
- 【剑指offer——JAVA实现】表示数值的字符串(含思路解答示意图)
- 【剑指offer——JAVA实现】顺时针打印矩阵(含思路解答示意图)
- 【剑指offer——JAVA实现】旋转数组的最小数字(含思路解答示意图)
- 【剑指offer——JAVA实现】重建二叉树(含思路解答示意图)
- 剑指offer 面试题16 反转链表-Java实现
- 剑指Offer:面试题16——反转链表(java实现)
- 剑指Offer 面试题24:反转链表 Java代码实现
- 剑指offer|面试题5:从尾到头打印链表(Java实现)
- 剑指offer第十五题【反转链表】c++实现
- 反转链表[剑指offer]之python实现
- 剑指offer 面试题17 合并两个排序的链表-Java实现
- 剑指offer面试题56 链表中环的入口节点(java实现)
- 剑指offer--面试题13:在O(1)时间删除链表结点--Java实现
- 剑指offer:反转链表(java)
- 剑指offer--二叉搜索树与双向链表 Java实现
- 剑指offer面试题java实现之题5:逆序打印链表
- 剑指Offer面试题56:链表中环的入口节点 Java实现