输入一个链表,输出该链表中倒数第K个结点。
解:
倒数第K个结点,也就是正着数链表的第(链表元素个数 - K + 1)个元素,所以,可以先获取链表元素的个数,然后在根据计算获取倒数第K个结点。代码如下:
ListNode curr = head;
int nums = 0;
while(curr != null){ //获取结点个数
nums++;
curr = curr.next;
}
if(nums < k)
return null;
int location = nums - k + 1;
ListNode temp = head;
for(int i = 1; i < location; i++) //获取第location个结点,即倒数第K个结点
temp = temp.next;
}
return temp;