快慢指针 求中间节点
package com.link;
import java.awt.print.Printable;
import java.util.ArrayList;
import java.util.List;
public class Solution {
/**
* @param head: the given linked list
* @return: the array that store the values in reverse order
*/
List<Integer> list =new ArrayList<>();
public ListNode reverseStore(ListNode head) {
// write your code here
ListNode slow=head;
ListNode fast=head;
while(fast!=null&&fast.next!=null){//如果快指针并且下一个不为空
fast=fast.next.next;//快指针移动两个
slow=slow.next;//慢指针移动一个
}
return slow;
}
public static void main(String[] arg) {
ListNode node1=new ListNode(1);
ListNode node2=new ListNode(2);
ListNode node3=new ListNode(3);
ListNode node4=new ListNode(4);
ListNode node5=new ListNode(5);
ListNode node6=new ListNode(6);
ListNode node7=new ListNode(7);
node1.next=node2;
node2.next=node3;
node3.next=node4;
//node4.next=node5;
//node5.next=node6;
//node6.next=node7;
Solution solution=new Solution();
ListNode node=solution.reverseStore(node1);
while(node!=null) {
System.out.print(node.val);
node=node.next;
}
}
}