题目描述:
Reverse a singly linked list.
click to show more hints.
Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?
Subscribe to see which companies asked this question
分析:
注意这个数据结构,这是一个链表,要求颠倒顺序。考虑设置两个变量,来表示相邻的两个节点one和two,首先把头节点的next设置null,先取得three = two.next然后one= two.next。取得往后移动。one= two ,two= three
代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode reverseList(ListNode head) {
if (head == null)
return null;
if (head != null && head.next == null)
return head;
ListNode fis = head;
ListNode sed = head.next;
fis.next = null;
while (sed != null) {
ListNode thd = sed.next;
sed.next = fis;
fis = sed;
sed = thd;
}
return fis;
}
}