【Java】實現一個遞迴和非遞迴的reverse,它們能把一個表翻轉過來。__Java

來源:互聯網
上載者:User

【Java】實現一個遞迴和非遞迴的reverse,它們能把一個表翻轉過來。操作中不要建立新的表項,只用已有的項。(表使用LinkedList<Integer>)


1.代碼實現


package devin.wu.readbook;import java.util.LinkedList;public class ReverseTools{public static void reverse(LinkedList<Integer> list, int i){int size = list.size();if (i < size / 2){swapItemByIndex(list, i, size - 1 - i);reverse(list, i + 1);}}public static void reverse(LinkedList<Integer> list){int size = list.size();for (int i = 0; i < size / 2; i++){swapItemByIndex(list, i, size - 1 - i);}}private static void swapItemByIndex(LinkedList<Integer> list, int i, int j){list.set(i, list.get(i) + list.get(j));list.set(j, list.get(i) - list.get(j));list.set(i, list.get(i) - list.get(j));}public static void main(String[] args){LinkedList<Integer> list = new LinkedList<Integer>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);System.out.println("-------------To print the initial linked list.--------------------");printLinkedList(list);System.out.println("-------------After reversing by recursion.--------------------");reverse(list);printLinkedList(list);System.out.println("-------------After reversing by iteration.--------------------");reverse(list, 0);printLinkedList(list);}private static void printLinkedList(LinkedList<Integer> list){for (Integer element : list){System.out.println(element);}}}

2.運行效果


-------------To print the initial linked list.--------------------
1
2
3
4
5
-------------After reversing by recursion.--------------------
5
4
3
2
1
-------------After reversing by iteration.--------------------
1
2
3
4
5



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.