題目:將乙個單向鍊錶反轉,輸入原始鍊錶的頭結點,返回反轉後鍊錶的頭結點
使用了兩種方式,第一種方式使用的是尾插法,建立乙個新的鍊錶,這個思路比較明確
第二種方式使用的是建立乙個前向結點,使鍊錶元素逐個反過來指。
package 劍指offer;
/*題目:定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。*/
public class test16
//
// system.out.println();
linklist list2 = reverselist2(head);
while(list2 != null) }
public static class linklist
public static linklist reverselist(linklist head)
return newlist.next;// 新鍊錶的第二個節點就是翻轉鍊錶的頭結點
} public static linklist reverselist2(linklist head)
return pre; // 因為將pre移動到了頭結點上,pre這裡就是head
}}
會了就不難了,這是廢話
劍指Offer(13) 複雜鍊錶的複製
題目描述 輸入乙個複雜鍊錶 每個節點中有節點值,以及兩個指標,乙個指向下乙個節點,另乙個特殊指標指向任意乙個節點 返回結果為複製後複雜鍊錶的head。注意,輸出結果中請不要返回引數中的節點引用,否則判題程式會直接返回空 思路 關於鍊錶的相關操作一定要注意的就是指標的使用,遇到複雜的問題我們可以將問題...
劍指Offer 13剪繩子
public static int cuttingrope int n return max.remainder biginteger.valueof 1000000007 intvalue public static biginteger cutting int n,int m 不會有人比我瘋狂了...
劍指offer 13 最小的k個數
最小的k個數 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,思路 可以先利用排序演算法進行排序,然後取出k個最小的數。排序演算法有冒泡 選擇 堆排序 歸併 快排等,為了練習這種排序演算法,我們用這些演算法一一求解本題。clas...