1. 程式人生 > 實用技巧 >反轉連結串列

反轉連結串列

此部落格連結:

題目連結:

反轉連結串列

定義一個函式,輸入一個連結串列的頭節點,反轉該連結串列並輸出反轉後連結串列的頭節點。

示例:

輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL

題解:

思路:

1.建立一個頭節點,使用new ListNode()建立一個新節點資料域定義為0。

2.再次建立一個節點,把給的連結串列的頭節點值放入節點的資料域中。

3.把第一個節點的next置空。

4使用頭插法把連結串列插入新的連結串列中。(先取給的連結串列中的節點,後指向新連結串列的第一個節點,然後把給的節點的指標向下移)

程式碼:

class Solution {
    public ListNode reverseList(ListNode head) {
        if(head==null)
        return head;
       ListNode p;
       p=new ListNode(0);//頭節點
       ListNode q=new ListNode(head.val);
       p.next=q;
       q.next=null;
       head=head.next;
       while(head!=null)
       {
           ListNode temp
=head; head=head.next; temp.next=q; q=temp; p.next=temp; } return p.next; } }