首页 > 试题广场 >

链表的中间结点

[编程题]链表的中间结点
  • 热度指数:1741 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
结点数量介于 1100 之间。
示例1

输入

{1,2,3}

输出

{2,3}

说明

此列表中的中间为结点 2 ,测评系统对该结点序列化表述是 {2,3} 
示例2

输入

{1,2,3,4}

输出

{3,4}

说明

此列表中的中间为结点 3 ,测评系统对该结点序列化表述是 {3,4} 

说明:本题目包含复杂数据结构ListNode,点此查看相关信息
   public ListNode middleNode (ListNode head) {
        // write code here
        List<ListNode> list = new ArrayList<>();
        // 设置2个记录指针
        ListNode fast = head;
        ListNode slow = head;
        while(fast != null && fast.next!=null){
           fast =  fast.next.next;
           slow = slow.next;
        }
        return slow;

    }
发表于 2023-02-11 17:05:13 回复(0)