Stack implemented by LinkedList

FILO(first in last out) head 端作为进出口。 api有, push(), pop(), top()

Implemented by LinkedList:

class ListNode {
    int val;
    ListNode next;
    public ListNode(int val) {
        this.val = val;
    }
}

public class Stack() {
    private ListNode head;
    public Stack() {
        head = null;
    }

    public void push(Integer val) {
        ListNode newNode = new ListNode(val);
        newNode.next = head;
        head = newNode;
    }

    public Integer pop() {
        if (head == null) {
            return null;
        }
        ListNode result = head;
        head = head.next;
        result.next = null;
        return result.val;
    }

    public Integer peek() {
        if (head == null) {
            return null;
        }
        return head.val;
    }
}

Implemented by array:

public class Stack{
    int head;
    int[] array;
    public Stack(int cap) {
        array = new int[cap];
        head = -1;
    }

    public boolean push(int val) {
        if (head == array.length - 1) {
            return false;
        }
        array[++head] = val;
        return true;
    }

    public Integer pop() {
        if (head == -1) {
            return null;
        }
        return array[head--];
    }

    public Integer top() {
        if (head == -1) {
            return null;
        }
        return array[head];
    }
}

results matching ""

    No results matching ""