leedcode:链表的中间结点

3.23日:链表的中间结点

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

输入:[1,2,3,4,5]——>输出:3

输入:[1,2,3,4,5,6]——>输出:4

//使用快慢指针,快指针q每次走2步,慢指针p每次走1步,当q走到链表的末尾时,p正好在中间
class Solution{
    public ListNode middleNode(ListNode head){
        ListNode p = head,q = head;
        while(q != null && q.next != null){
            q = q.next.next;
            p = p.next;
        }
        return p;
    }
}
发布了22 篇原创文章 · 获赞 0 · 访问量 367
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览