美文网首页
剑指offer problem 5:从尾到头打印链表(java)

剑指offer problem 5:从尾到头打印链表(java)

作者: vendettar | 来源:发表于2018-12-11 18:46 被阅读0次
    
    import java.util.Stack;
    
    /**
     * 输入一个链表的头结点,从尾到头反过来打印出每个结点的值.
     */
    
    //首先定义链表结构
    class LinkNode {
        LinkNode next;
        int node_value;
    }
    
    public class PrintListReversely {
        /**
         * 递归实现
         * @param headNode 头结点
         */
        private void recursivelyPrint(LinkNode headNode) {
            if (headNode.next == null){
                System.out.print(headNode.node_value  + " ");
            }else {
                recursivelyPrint(headNode.next);
                System.out.print(headNode.node_value  + " ");
            }
        }
    
        /**
         * 用栈的思想来实现
         * @param headNode 头结点
         */
        private void reversePrint(LinkNode headNode) {
    
            Stack<LinkNode> stack = new Stack<>();
            while (headNode != null) {
                stack.push(headNode);
                headNode = headNode.next;
            }
    
            while (!stack.isEmpty()) {
                System.out.print(stack.pop().node_value + " ");
            }
            System.out.println();
        }
    
        public static void main(String[] args) {
            //输入的链表有多个结点
            PrintListReversely plr = new PrintListReversely();
            LinkNode node1 = new LinkNode();
            LinkNode node2 = new LinkNode();
            LinkNode node3 = new LinkNode();
            LinkNode node4 = new LinkNode();
            node1.node_value = 1;
            node2.node_value = 2;
            node3.node_value = 3;
            node4.node_value = 0;
            node1.next = node2;
            node2.next = node3;
            node3.next = node4;
            plr.reversePrint(node1);
            plr.recursivelyPrint(node1);
        }
    }
    

    result:

    0 3 2 1 
    0 3 2 1 
    

    相关文章

      网友评论

          本文标题:剑指offer problem 5:从尾到头打印链表(java)

          本文链接:https://www.haomeiwen.com/subject/rpiehqtx.html