链表递归,最小节点问题

问题是这样的:
这是我写的一个递归求链表最小节点的方法。
返回结果是正确的。但我在想递归过程的时候有点不理解。

下面是源码和结果。麻烦告知这个递归的过程,
为什么输出的值会这么没有规律呢?
结果图有规律,但不是我分行的规律。

//节点类
class ListNode{
    int val;
    ListNode next;
    public ListNode(int val) {
        this.val = val;
        next = null;
    }
}

private ListNode getMinNode(ListNode head) {
        //尾节点
        if(head.next==null) {
            return head;
        }
        System.out.print(head.val+" ");
        return head.val<getMinNode(head.next).val?head:getMinNode(head.next);
    }

图片说明
图片说明

https://blog.csdn.net/liuqi66/article/details/78627445