Careercup书第四版一道题的解答有错# JobHunting - 待字闺中
j*l
1 楼
2.2 Implement an algorithm to find the nth to last element of a singly
linked list.
考虑一个元素的链表,n = 2
则for语句执行一次,循环结束后p2为null
然后while语句试图取null指针的next值,crash...
错误代码如下
LinkedListNode nthToLast(LinkedListNode head, int n) {
if (head == null || n < 1) {
return null;
}
LinkedListNode p1 = head;
LinkedListNode p2 = head;
for (int j = 0; j < n - 1; ++j) { // skip n-1 steps ahead
if (p2 == null) {
return null; // not found since list size < n
}
linked list.
考虑一个元素的链表,n = 2
则for语句执行一次,循环结束后p2为null
然后while语句试图取null指针的next值,crash...
错误代码如下
LinkedListNode nthToLast(LinkedListNode head, int n) {
if (head == null || n < 1) {
return null;
}
LinkedListNode p1 = head;
LinkedListNode p2 = head;
for (int j = 0; j < n - 1; ++j) { // skip n-1 steps ahead
if (p2 == null) {
return null; // not found since list size < n
}