定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。
示例: 輸入: 1->2->3->4->5->null
輸出: 5->4->3->2->1->null
限制:0 <= 節點個數 <= 5000
方法一:日常雙指標,好用不要錢
public
class
listnode
}public listnode reverselist
(listnode head)
return pre;
}
方法二:遞迴
有思路做不出,搜得:
public listnode reverselist
(listnode head)
//這裡的cur就是最後乙個節點
listnode cur =
reverselist
(head.next)
;//如果鍊錶是 1->2->3->4->5,那麼此時的cur就是5
//而head是4,head的下乙個是5,下下乙個是空
//所以head.next.next 就是5->4
head.next.next = head;
//防止鍊錶迴圈,需要將head.next設定為空
head.next = null;
//每層遞迴函式都返回cur,也就是最後乙個節點
return cur;
}
學習了,遞迴下次最好還是多畫畫圖 劍指Offer每日一題09
輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。示例 輸入 1 2 5 null 2 4 7 null 輸出 1 2 2 4 5 7 null限制 0 鍊錶長度 1000 方法一 正常哨兵結點求解 class solution else prev prev.next 迴圈結...
劍指Offer第一題
在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 從數值中間開始查詢,根據題意,二維陣列的左上角是最小值,二維陣列的右下角是最大值,從中間數值查詢是最節約時間的,可以從左下角或者...
劍指offer 第一題
這題思路不難,但是關於二維陣列的邊界問題,差點把我整崩潰 題目描述 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。這題的思路就是找乙個中間值,讓他在陣列查詢...