Pass values from one Visualforce Page to Another Visualforce page in Salesforce

Visualforce Page:

<apex:page controller="AccountListController">
        <apex:pageBlock id="pg">
            <apex:pageBlockSection >
                <apex:panelGrid columns="3" cellpadding="3" cellspacing="3">
                    <apex:outputLabel value="Account Name: "/>
                    <apex:inputText value="{!acctName}"/>
                    <apex:commandButton value="Go" action="{!searchAcct}"/>
            <apex:pageBlockSection rendered="{!listAcct.Size > 0}" title="Accounts">        
                <apex:pageBlockTable value="{!listAcct}" var="acc">
                    <apex:column headerValue="Open Account Detail">
                        <apex:outputLink target="_blank" value="/{!acc.Id}">{!acc.Name}</apex:outputLink>
                    <apex:column headerValue="Pass Account Id to a VF Page">
                        <apex:outputLink target="_blank" value="/apex/AccountDetail?accId={!acc.Id}">{!acc.Name}</apex:outputLink>

Apex Class:

public class AccountListController {
    public String acctName { get; set; }
    public List < Account > listAcct { get; set; }
    public AccountListController() {
        listAcct = new List < Account >();
    public void searchAcct() {
        String soql = 'SELECT Id, Name FROM Account WHERE Name LIKE \'' + acctName + '%\' LIMIT 10';
        listAcct = Database.query( soql );


Visualforce Page:

<apex:page >
    <apex:detail subject="{!$CurrentPage.parameters.accId}"/>