欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

给定一个头结点为 head 的非空单链表,返回链表的中间结点,如果有两个中间结点,则返回第二个中间结点。

程序员文章站 2022-07-10 20:14:54
...

思路:
定义一个fast和一个slow,fast每走两步,slow就走一步,
最终返回的slow就是中间的值(链表的节点个数为奇数偶数都适用)

代码示例:


class ListNode {
    public int val;
    public ListNode next;
    public ListNode(int val){
        this.val = val;
        this.next = null;
    }
}

public class TestDemo1025_1 {
    public ListNode head;

//给定一个头结点为 head 的非空单链表,返回链表的中间结点。
//如果有两个中间结点,则返回第二个中间结点。
 public ListNode middleNode() {
        ListNode fast = this.head;
        ListNode slow = this.head;
        while (fast != null && fast.next != null){
            fast = fast.next.next;
            slow = slow.next;
        }
        return slow;
    }
}
相关标签: 题目 java

推荐阅读