劍指offer--給定一個鏈表,從尾部到頭部打印,輸出鏈表節點的值

新開公衆號,歡迎關注:裏面有幾個T的免費的學習資源

這裏寫圖片描述
/*給定一個鏈表,從尾部到頭部打印,
* 輸出鏈表節點的值*/

package offer1.PrintLinkListFromTailToFront;

/*給定一個鏈表,從尾部到頭部打印,
 * 輸出鏈表節點的值*/



public class Own {

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

    }

    public Integer[] printListFromTailToHead(ListNode listNode){
        int len=0;
        ListNode temp=listNode;
        //1.第一輪遍歷鏈表,統計節點個數
        while (listNode!=null) {
            ++len;
            listNode=listNode.next;
        }


        //2.第二輪遍歷數組,把遍歷的節點的值從數組後面開始往前面填充
        Integer[] nodes=new Integer[len];
        int i=len-1;
        while (temp!=null) {
            nodes[i--]=temp.val;
            temp=temp.next;
        }
        return nodes;
    }

    //測試
    public static void main(String[] args) {
        ListNode root=new ListNode(1);
        ListNode node1=new ListNode(2);
        ListNode node2=new ListNode(3);
        ListNode node3=new ListNode(4);

        root.next=node1;
        node1.next=node2;
        node2.next=node3;

        Own a=new Own();
        Integer[]s=a.printListFromTailToHead(root);
        for (int i = 0; i < s.length; i++) {
            System.out.print(s[i]+" ");
        }
    }


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章