Java-876. 链表的中间结点【力扣】

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

在这里插入图片描述
思路:
先求链表的长度(size),用链表长度除以2,再写一个引用从头开始,走长度/2步。即可

代码要求:

/** 
* Definition for singly-linked list. 
* * public class ListNode {
* *     int val;
* *     ListNode next; 
* *     ListNode(int x) { val = x; } 
* * }
* */

代码实现:

public class LinkedListTest{
    
    
 static class ListNode{
    
    
  int val;
  ListNode next;
  public ListNode(int val) {
    
    
   this.val=val;
  }
 }
 
 public ListNode middleNode(ListNode head) {
    
    
  int steps=size(head)/2;
  ListNode cur=head;
  for(int i=0;i<steps;i++) {
    
    
   cur=cur.next;
  }
  return cur;
    }
 public int size(ListNode head) {
    
    
  int size=0;
  ListNode cur=head;
  while(cur!=null) {
    
    
   size++;
   cur=cur.next;
  }
  return size;
 }
}

猜你喜欢

转载自blog.csdn.net/weixin_44378053/article/details/105294035