1. 程式人生 > 其它 >力扣簡206 反轉連結串列

力扣簡206 反轉連結串列

連結串列 遞迴 迭代

我現在認為迭代是每一步處理一個問題,形成一個比原來規模小但是處理方法相同的子問題,直至處理完。

看了下發現連結串列和樹裡的迭代 都用while做結束條件 整體放在一個大迴圈體內 一步一步處理 我下面列的這個方法應該也是迭代

自己做的就常規想法:直接取下來頭,依次前插。

package leetcode01;
/*給你單鏈表的頭節點 head,請你反轉連結串列,並返回反轉後的連結串列。*/
public class Solution206 {
    public static ListNode reverseList(ListNode head) {
        ListNode  res
=null; ListNode flag=res; while(head!=null) { res=head; head=head.next; res.next=flag; flag=res; } return res; } public static void main(String[] args) { // TODO Auto-generated method stub ListNode head=new
ListNode(1,new ListNode(2,new ListNode(3))); System.out.println(reverseList(head)); } }

題解一:迭代

public static ListNode reverseList(ListNode head) {
        ListNode pre=null;
        ListNode now=null;
        while(head!=null) {
            now=head;
            head=head.next;
            now.next
=pre; pre=now; } return now; }

題解二:遞迴