思路1:先將head.next的節點儲存下來,然後修改head的指向,(指向前乙個節點)。然後儲存當前head節點(為下一節點的前結點),將小標[i]移動位置到下乙個節點繼續操作。
//直接反轉
public static node reverse(node head)
return pre;
}
//遞迴反轉
public static node reverse2(node head)
//一定要先判斷head是否為空,可能第乙個傳進來的引數head就為空
node next=head.next;//記錄接下來傳遞的節點
head.next=null;//斷開聯絡
//除去head剩下的鍊錶反轉
node h2=reverse2(next);
//當後面的都反轉了之後,連線到剛剛的head
next.next=head;
return h2;
}
列印鍊錶:
//列印鍊錶
public static void printlinklist(node head)
system.out.println();
}
主函式:
//測試主函式
public static void main(string args)
全部**:
public class reverselist
} //直接反轉
public static node reverse(node head)
return pre;
} //遞迴反轉
public static node reverse2(node head)
node next=head.next;//記錄接下來傳遞的節點
head.next=null;//斷開聯絡
//除去head剩下的鍊錶反轉
node h2=reverse2(next);
//當後面的都反轉了之後,連線到剛剛的head
next.next=head;
return h2;
} //列印鍊錶
public static void printlinklist(node head)
system.out.println();
} //測試主函式
public static void main(string args)
直接遍歷...
public static void common (node head1,node head2) }
public static void common (node head1,node head2)
} system.out.println();
} public static void main(string args)
public static void printlinklist(node head)
system.out.println();
}}
25 鍊錶 反轉單鏈表 合併兩個排序的鍊錶
輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。public class listnode public class solution return prior 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。先確定頭節點,之後根據兩個鍊錶第乙個節點的大小,按...
206 反轉鍊錶 反轉乙個單鏈表。
題解一 迭代法 在遍歷鍊錶時,將當前節點的 next 指標改為指向前乙個節點。由於節點沒有引用其前乙個節點,因此必須事先儲存其前乙個節點pre。在更改引用之前,還需要儲存後乙個節點。最後返回新的頭引用。definition for singly linked list.struct listnode...
鍊錶 兩個單鏈表求差集
問題描述 已知集合a和b的元素分別用不含頭結點的單鏈表儲存,函式difference 用於求解集合a與b的差集,並將結果儲存在集合a的單鏈表中。例如,若集合a 集合b 完成計算後a 鍊錶結點的結構型別定義如下 struct node 請完成函式void difference node la node...