面試題24. 反轉連結清單
定義一個函數,輸入一個連結清單的頭節點,反轉該連結清單并輸出反轉後連結清單的頭節點。
示例:
輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL
package 連結清單;
public class Solution2 {
public static ListNode reverseList(ListNode head) {
ListNode newHead=null,node;
while (head!=null){
//記錄目前的
node = head;
//删除
head = head.next;
//對新的連結清單做頭插法
node.next = newHead;
newHead=node;
}
return newHead;
}
public static void main(String[] args) {
ListNode l1 = new ListNode(1);
ListNode l2 = new ListNode(3);
ListNode l3 = new ListNode(2);
l1.next=l2;
l2.next=l3;
ListNode listNode = reverseList(l1);
while (listNode!=null){
System.out.println(listNode.val);
listNode=listNode.next;
}
}
}
複制