美文网首页数据结构与算法
链表--求链表的中间结点

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

作者: 暮想sun | 来源:发表于2019-12-17 22:06 被阅读0次

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

输入:[1,2,3,4,5]
输出:此列表中的结点 3 (序列化形式:[3,4,5])


    public static void main(String[] args) {
        LinkedNode linkedNode5 = new LinkedNode(1);
        LinkedNode linkedNode4 = new LinkedNode(2, linkedNode5);
        LinkedNode linkedNode3 = new LinkedNode(3, linkedNode4);
        LinkedNode linkedNode1 = new LinkedNode(5, linkedNode3);

        LinkedNode linkedNode = middleNode(linkedNode1);

        while (linkedNode != null) {
            System.out.println(linkedNode.item);
            linkedNode = linkedNode.next;
        }
    }

    public static LinkedNode middleNode(LinkedNode linkedNode) {

        LinkedNode p1 = linkedNode;
        LinkedNode p2 = linkedNode;

        //p2向后走两步,p1走一步,p2为空的时候,p1是在正中间,偶数的话为正中间下一位
        while (p2 != null && p2.next != null) {
            p2 = p2.next.next;
            p1 = p1.next;
        }

        return p1;

    }

    private static class LinkedNode {

        private int item;

        private LinkedNode next;

        public LinkedNode(int item) {
            this.item = item;
        }

        public LinkedNode(int item, LinkedNode next) {
            this.item = item;
            this.next = next;
        }
    }

相关文章

  • 链表--求链表的中间结点

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

  • 常见算法总结

    链表 单链表反转链表中环的检测两个有序的链表合并删除链表倒数第 n 个结点求链表中间第n个节点

  • 链表算法归纳

    1.单链表反转 2.链表中环的检测 3.两个有序的链表合并 4.删除链表倒数第n个结点 5.求链表的中间结点

  • 求单向链表的中间结点

    求单向链表的中间结点 需求 非空的单向链表,返回其中间节点。如果有两个中间结点,返回第二个。链表大小控制在1~10...

  • 链表

    1.反转链表 2.链表中环的检查 3.两个有序的链表合并 4.删除链表倒数第n个结点 5. 求链表的中间结点 Li...

  • 力扣算法 - 链表的中间结点

    链表的中间结点 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回...

  • LeetCode 876. 链表的中间结点

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

  • LeetCode 链表 > 876. 链表的中间结点

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

  • 876-链表的中间节点

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

  • 234. 回文链表

    一. 题目: 二. 思路: 快慢指针找到中间结点,反转中间结点以后的链表 拿反转之后的链表和前面链表进行比较,如果...

网友评论

    本文标题:链表--求链表的中间结点

    本文链接:https://www.haomeiwen.com/subject/ptgenctx.html