Потому что в строке
int index = printKthToLast(head.next, k) + 1;
Вы добавляете 1
к результату следующего вызова. Таким образом, последний вызов printKthToLast
вернет 0
, второй на последний вернет 1
, третий на последний 2
и т. Д.
Попробуйте DirectoryEntry
класс вместо ManagementObject
класс.
Как Эли отметил, можно использовать Систему. DirectoryServices кодируют для выполнения этого на MSDN:
String myADSPath = "LDAP://onecity/CN=Users,
DC=onecity,DC=corp,DC=fabrikam,DC=com";
// Create an Instance of DirectoryEntry.
DirectoryEntry myDirectoryEntry = new DirectoryEntry(myADSPath);
myDirectoryEntry.Username = UserName;
myDirectoryEntry.Password = SecurelyStoredPassword;