您的位置:首页 > 编程语言 > Java开发

Java反转链表方法

2017-05-19 12:19 316 查看

反转单链表的Java实现

前不久在面试时被问到单链表反转的问题,在那之前从未留意过这方面的问题(我懒得真是随心所欲啊。。。),毫不意外慌了心神只回答了大概思路。。。后来再次做到这道题时,无限感慨了自己的智商。

得出结论:不如回家种田。。。错,一定要好好记录回顾,毕竟我记忆还不好。。。

正题——反转单链表的思路:找到尾结点,从尾结点开始逆转“指针”指向。

以下是算法实现,一个我拜读了大神们的实现方法的总结,我可长点儿心吧。。。

/*
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||head.next == null){
return head;
}
ListNode newHead = ReverseList(head.next);
// 将下一个结点的“指针”逆转,指向当前头结点
head.next.next = head;
// 将当前头结点指向的结点置空完成反转
head.next = null;
return newHead;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: