找链表中间节点,只遍历一次

给定一个长度大于1的单链表,如何遍历一次获取到中间节点的值
注:如果链表长度为偶数,则结果去中间两个节点中的第一个
输入、输出描述
输入:
list: 长度大于1的单链表
输出:
中间节点的值
Example
输入:
list=[2,6,8,4,1]
输出:
8
代码:
import java.util.*;

public class Main {

    /**
    //该段代码仅用于调试,提交时请注释该段代码
    class LinkNode<T> {

        public T data;

        public LinkNode<T> next;
    }
 */ 

 public int solution(LinkNode<Integer> head) {
		LinkNode<Integer> quick = head;
		LinkNode<Integer> slow = head;
		while(quick.next !=null && quick.next.next !=null){
			
			quick=quick.next.next;
			slow=slow.next;
		}
 
 
        return slow.data;
    }
}
一个创业中的苦逼程序员
评论专区

隐藏