劍指offer第三天之從尾到頭打印鏈表
輸入一個鏈表,按鏈表從尾到頭的順序返回一個ArrayList。
c++:
鏈表反轉之後輸出
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode* r=NULL;
ListNode* node=pHead;
ListNode* p=NULL;
while(node!=NULL)
{
r=node->next;
node->next=p;
p=node;
node=r;
}
return p;
}
vector<int> printListFromTailToHead(ListNode* head) {
ListNode* node = ReverseList(head);
vector<int>v;
while(node)
{
v.push_back(node->val);
node=node->next;
}
return v;
}
};
java:
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> arr= new ArrayList<>();
while(listNode!=null)
{
arr.add(0,listNode.val);
listNode =listNode.next;
}
return arr;
}
}
python:
class Solution:
# 返回從尾部到頭部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
lista =[]
while listNode:
lista.insert(0,listNode.val)
listNode=listNode.next
return lista