[C#版劍指offer]從尾到頭打印鏈表

給定一個鏈表,需要將鏈表中存的元素從尾到頭打印出來,由鏈表的特性可以知道,元素都是從前向後鏈接的,因此需要通過另外手段實現從尾到頭遍歷,此時使用一個棧來完成這樣一個操作,棧的特點是先進後出,這樣往棧中存的元素出棧時就是從尾到頭打印的了。

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

public static ArrayList PrintListFromTailToHead(ListNode listnode)
        {
            Stack<ListNode> stack = new Stack<ListNode>();
            while(listnode != null)
            {
                stack.Push(listnode);
                listnode = listnode.next;
            }
            ArrayList result = new ArrayList();
            while (stack.Count != 0)
            {
                result.Add(stack.Pop().val);
            }
            return result;
        }
//測試用例
            ListNode node1 = new ListNode(2);
            ListNode node2 = new ListNode(3);
            ListNode node3 = new ListNode(4);
            node1.next = node2;
            node2.next = node3;

            ArrayList s = PrintListFromTailToHead(node1);
            for(int i = 0; i < s.Count; i++)
            {
                Console.WriteLine(s[i].ToString());
            }

 

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