小影片程式碼,反轉連結串列的實現思路分析
//思路一: //使用指標 public ListNode ReverseList(ListNode head) { if(head==null || head.next==null){ return head; } ListNode pre=null; ListNode cur=head; while(cur!=null){ ListNode next = cur.next; cur.next = pre; pre=cur; cur=next; } return pre; }
//思路二: //使用遞迴 public ListNode ReverseList(ListNode head) { if(head==null || head.next==null){ return head; } //tail 是 head.next 連結串列反轉後的最後一個結點 ListNode tail = head.next; //反轉 head.next 連結串列 ListNode next = ReverseList(head.next); head.next = null; //注意:十分重要:head.next 連結串列反轉後,未反轉的只有 head 一個結點 tail.next = head; return next; }
以上就是小影片程式碼,反轉連結串列的實現思路分析, 更多內容歡迎關注之後的文章