[每日一題] 第十三題:連結串列中倒數第k個節點

DRose發表於2020-07-31

輸入一個連結串列,輸出該連結串列中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即連結串列的尾節點是倒數第1個節點。例如,一個連結串列有6個節點,從頭節點開始,它們的值依次是1、2、3、4、5、6。這個連結串列的倒數第3個節點是值為4的節點。

示例:

給定一個連結串列: 1->2->3->4->5, 和 k = 2.
返回連結串列 4->5.

方法一:我的解法

很簡單,就是遍歷找到 count - k + 1 結點,然後輸出

程式碼

/**
 * 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) {

        int count = 0;
        if (head == null) {
            return head;
        }
        ListNode temp = head;

        while (head != null) {
            count ++;
            head = head.next;
        }
        for (int i = 1; i <  count - k + 1; i++) {
            temp = temp.next;
        }

        return temp;
    }
}

來源:力扣(LeetCode)
連結:leetcode-cn.com/problems/lian-biao...
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章