牛客刷題 從尾到頭列印單鏈表

2021-09-25 15:09:01 字數 810 閱讀 7741

輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個arraylist。

解題思路:

第一種方法是直接使用vector 的reverse 方法  將鍊錶從頭到尾push_back到vector中 再反轉 返回。

第二種方法是 使用乙個棧,將鍊錶從頭到尾push到棧中,再依次出棧,將出棧的元素push_back到vector 中 返回 。 

/**

* struct listnode

* };

*/#include // std::reverse

#include class solution

std::reverse(myvector.begin(),myvector.end());

return myvector;

/*vectormyvector;

stacks;

listnode *p=head;

while(p!=null)

while(!s.empty())

return myvector;*/}

};

go 版本: 

func printlistfromtailtohead( head *listnode ) int 

} var val int

for ;head != nil;head = head.next

var res int

for index:= len(val)-1;index >= 0;index --

return res

}

從尾到頭列印單鏈表

由於單鏈表只能從按單個方向訪問下乙個節點,而不能訪問前乙個節點。首先,解決這個問題肯定要遍歷鍊錶。遍歷的順序是從頭到尾的順序,可輸出的順序卻是從尾到頭。也就是說第乙個遍歷到的結點最後乙個輸出,而最後乙個遍歷到得結點第乙個輸出。這就是典型的 後進先出 可以用 棧實現這種順序。實現程式過程 每經過乙個結...

從尾到頭列印單鏈表

include using namespace std include includetypedef struct node 節點結構 node node create 尾插法建立單鏈表 else q p p node malloc sizeof node p next null if flag 0...

從尾到頭列印單鏈表

可運用兩種方法列印 方法一 迴圈演算法 方法二 遞迴壓棧呼叫 方法一 先呼叫我們已經寫好的煉表頭檔案list.h鍊錶構造方面不過多說明。void printreverse listnode first 要列印的結點 printf d cur data end cur 1.通過cur next end...