定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。示例:輸入: 1->2->3->4->5->null
輸出: 5->4->3->2->1->null
/**
* definition for singly-linked list.
* public class listnode
* }*//*
這是雙指標的模式
每次讓 pre 的 nextnext 指向 curcur ,實現一次區域性反轉
區域性反轉完成之後, prepre 和 curcur 同時往前移動乙個位置
迴圈上述過程,直至 prepre 到達鍊錶尾部
*/class
solution
return cur;
}}
附上大神的遞迴的解法
class
solution
private listnode recur
(listnode cur, listnode pre)
}
遞迴演算法
public node reverselist
(node head)
//這裡的cur就是最後乙個節點
node 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,也就是最後乙個節點
)謝謝大家。
每天一道演算法題(二十六)
給你 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。示例 輸入 1,8,6,2,5,...
每天一道演算法題
no.1 棧是特殊的線性表,它。a.對 b.錯答案 錯,它的插入和刪除都是在同一端進行的。no.2 n個葉子節點的滿二叉樹 除了葉子節點,每個節點都有兩個孩子 總共有多少個節點?a.2n 1 b.2n c.n 1 d.n答案 a 滿二叉樹我們講過了,度為0的節點比度為2的加點多乙個。滿二叉樹是特殊的...
每天一道演算法題
1.給定乙個只包括 的字串,判斷字串是否匹配。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。思路 正確思路 不需要考慮輸入內容是否合法,這只是做題,不是工程 定義乙個字典,後括號為鍵,前半部分為值 定義乙個元素儲存棧頂,注意這個設定,取棧...