反轉連結串列
阿新 • • 發佈:2020-07-22
此部落格連結:
題目連結:
反轉連結串列
定義一個函式,輸入一個連結串列的頭節點,反轉該連結串列並輸出反轉後連結串列的頭節點。
示例:
輸入: 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; } }