1. 程式人生 > 其它 >#力扣 LeetCode876. 連結串列的中間結點 @FDDLC

#力扣 LeetCode876. 連結串列的中間結點 @FDDLC

技術標籤:演算法&資料結構

題目描述:

https://leetcode-cn.com/problems/middle-of-the-linked-list/

Java程式碼:

class Solution { //非空單鏈表。如果有兩個中間結點,則返回第二個中間結點
    public ListNode middleNode(ListNode head) {
        int len=0;
        ListNode tmp=head;
        while(tmp!=null){
            tmp=tmp.next;
            len++;
        }
        len=(len+2)/2;
        while(--len>0)head=head.next;
        return head;
    }
}

Java程式碼二:快慢指標

class Solution {
    public ListNode middleNode(ListNode head) {
        ListNode slow=head,fast=head;
        while(fast!=null&&fast.next!=null){
            slow=slow.next;
            fast=fast.next.next;
        }
        return slow;
    }
}