拒絕反爬蟲!教你搞定爬蟲驗證碼 轉載:https://mp.weixin.qq.com/s/WSG-qQgKiAit5Pua7XQGZg
阿新 • • 發佈:2021-06-21
輸入一個連結串列的頭節點,從尾到頭反過來返回每個節點的值(用陣列返回)。
示例 1:
輸入:head = [1,3,2] 輸出:[2,3,1]
限制:
0 <= 連結串列長度 <= 10000
題解:
使用棧,後進先出的特點。
從連結串列頭開始,依次將節點入棧,然後依次彈出棧內元素並存儲到陣列中。
- 建立一個棧,用於儲存連結串列的節點
- 建立一個指標,初始時指向連結串列的頭節點
- 當指標指向的元素非空時,重複下列操作:
- 將指標指向的節點壓入棧內
- 將指標移到當前節點的下一個節點
public class offer06 { public static void main(String[] args) {// TODO Auto-generated method stub ListNode head = new ListNode(1); head.next = new ListNode(3); head.next.next = new ListNode(2); int[] arr = reversePrint(head); for(int i:arr){ System.out.print(i+" "); } } public static int[] reversePrint(ListNode head) { Stack<ListNode> stack = new Stack();//建立棧 ListNode temp = head;//建立指向head的指標 while(temp!=null){ stack.push(temp); temp = temp.next; } int size = stack.size(); int[] arr = new int[size];for(int i=0;i<size;i++){ arr[i] = stack.pop().val; } return arr; } } /** * 單鏈表列表 * @author Administrator * */ class ListNode{ int val; ListNode next; ListNode(int x){ val = x; } }