单链表反转:
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof
思路一:链表的思路几乎都是遍历,找节点与next节点之间的关系。
在这里,思路也一样,存head节点,把next先取出来,把next指向res节点,把head节点赋给res节点,head往next走,这样走下来,链表反转就实现了。
class Solution {
public ListNode reverseList(ListNode head) {
ListNode res=new ListNode();
while(head!=null){
//获取next节点
ListNode next=head.next;
//头节点的next为res,拼接
head.next=res;
//拼接结果赋给res
res=head;
//head继续往下走
head=next;
}
return res;
}
}