5 回答

TA貢獻(xiàn)1836條經(jīng)驗 獲得超3個贊
在您的代碼中執(zhí)行myFun({0,1,2,3,4},2);
.
這執(zhí)行myFun({1,2,3,4,0},1);
.
下一個執(zhí)行的 myFun 是myFun({2,3,4,0,1},0);
,它立即停止。
這是因為您刪除了第一個元素并將其添加到末尾(add()
將其附加到末尾)

TA貢獻(xiàn)1825條經(jīng)驗 獲得超6個贊
出色地
A x = xs.get(0);
xs.remove(0);
xs.add(x);
將第一個元素移動到最后一個位置
if (n > 0) {
盡管n is > 0
你從
myFun(xs,2);
并由于以下原因遞歸調(diào)用 N 次myFun(xs,n-1);
所以你將 2 第一個元素移動到數(shù)組的末尾

TA貢獻(xiàn)1998條經(jīng)驗 獲得超6個贊
函數(shù)“myFun”從列表中刪除 n 個元素,然后將它們再次添加到列表中。add 方法將元素添加到列表的末尾。因為您發(fā)送了 n=2 。myFun 將從列表的“頭”中刪除 0,1,然后移動到列表的末尾。

TA貢獻(xiàn)1860條經(jīng)驗 獲得超8個贊
因為您已將n設(shè)置為 2。所以基本上 myFun() 最多會執(zhí)行兩次。myFun() 正在刪除列表的第一個元素并將其重新添加到后面。由于這只能發(fā)生兩次,因此前兩個元素(0 和 1)將被發(fā)送到列表的后面。

TA貢獻(xiàn)1872條經(jīng)驗 獲得超4個贊
原始列表值:
01234
當(dāng) n =2 列表修改為
12340
當(dāng) n=1 列表修改為
23401
當(dāng) n 達(dá)到 0 時,遞歸將停止。并且列表中的項目當(dāng)前順序?qū)⑹?/p>
23401
添加回答
舉報