链表oj----链表的中间结点

Posted ohana!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表oj----链表的中间结点相关的知识,希望对你有一定的参考价值。

题目内容:

 方法一:快慢指针法(让prev标记慢的那一个)

        ListNode cur = head;
        ListNode prev = head;
        while(cur != null && cur.next != null){
            prev = prev.next;
            cur = cur.next.next;
        }
        return prev;

方法二:先计算出链表的长度,在遍历链表

        ListNode cur = head;

        int count = 0;
        while(cur != null){
            count++;
            cur = cur.next;
        }

        count >>= 1;
        cur = head;
        while(count != 0){
            cur = cur.next;
            count--;
        }

        return cur;

更推荐方法一,只需要遍历一次链表,逻辑性也更强

以上是关于链表oj----链表的中间结点的主要内容,如果未能解决你的问题,请参考以下文章

[ 链表OJ题--C语言] 相交链表 两个链表的第一个公共结点

链表OJ题

数据结构学习笔记(数组链表OJ题)整理与总结

数据结构学习笔记(数组链表OJ题)整理与总结

Chain Surfase Test - java 链表经典 OJ 面试题 - 巨细

数据结构之超硬核热门复杂度数组链表OJ题2W+文字+图片详解