С этими входами:
userInput="Test Test Test"
echo "Line 1
Line 2
Line 3" >file1
echo "Line 4
Line 5
Line 6" >file2
Я бы сделал:
printf "%s%s%s" "$(cat file1)" "$userInput" "$(cat file2)" >newfile
Создание >newfile
эквивалентно touch
и добавлению контента на вашем первом шаге , Чуть легче увидеть намерение с этим.
Я получаю:
$ cat newfile
Line 1
Line 2
Line 3Test Test TestLine 4
Line 5
Line 6
Потому что в строке
int index = printKthToLast(head.next, k) + 1;
Вы добавляете 1
к результату следующего вызова. Таким образом, последний вызов printKthToLast
вернет 0
, второй на последний вернет 1
, третий на последний 2
и т. Д.