[劍指offer]6.鏈表中倒數第k個節點

題目連接:戳這裏
題目描述:輸入一個鏈表,輸出該鏈表中倒數第k個節點。爲了符合大多數人的習慣,本題從1開始計數,即鏈表的尾節點是倒數第1個節點。例如,一個鏈表有6個節點,從頭節點開始,它們的值依次是一、二、三、四、五、6。這個鏈表的倒數第3個節點是值爲4的節點。
解題思路:先求出鏈表的長度,再算出倒數第k個節點正數的序號,再從1開始遍歷到該節點便可。
java代碼:java

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode getKthFromEnd(ListNode head, int k) {
        if (head == null) {
        return null;
      } else {
        int len = 1;
        ListNode lenhead=head;
        ListNode ans;
        while (lenhead.next!= null) {
          len++;
            lenhead=lenhead.next;
        }
        int num = len - k + 1;
        for (int i = 1; i <num; i++) {
                head = head.next;
        }
        ans = head;
        return ans;
      }
    }
    }
相關文章
相關標籤/搜索