![](/img/trans.png)
[英]How to write a recursive method to promote a String to all possible combinations, With no loops or arrays?
[英]Is it possible to write a recursive method in java where all items in a list is replaced by the last element?(without using loops)
例如,如果列表包含元素(a,b,c,d,e),則在調用該方法后,它應具有(e,e,e,e,e)
假設有一個通用方法:
public static <T> void duplicateLast(List<T> list){}
是否可以編寫一個遞歸方法,將列表中的所有項目都替換為最后一個元素,而不使用任何循環。
絕對-該方法如下:
注意:您將需要更改遞歸方法的簽名以返回T
,並使用列表迭代器而不是列表,以便您的方法與鏈接列表和數組列表同樣有效。
這是實現它的方法:
static <T> T recursiveLast(ListIterator<T> iter) {
if (!iter.hasNext()) {
// It is invalid to call recursiveLast on an empty list
return null;
}
T val = iter.next();
// Base case is when hasNext() returns false
if (iter.hasNext()) {
val = recursiveLast(iter);
}
iter.previous();
iter.set(val);
return val;
}
首先:檢查列表中是否包含多個元素。 如果不是,請在此處停止。
第二:將第一個元素替換為最后一個元素。
第三:您對函數進行遞歸調用,以傳遞沒有參數中第一個元素的子列表。
就這樣。
我讓你用Java編寫代碼:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.