最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java編程實(shí)現(xiàn)從尾到頭打印鏈表代碼實(shí)例

 更新時(shí)間:2017年10月16日 09:43:18   作者:lilivian  
這篇文章主要介紹了Java編程實(shí)現(xiàn)從尾到頭打印鏈表代碼實(shí)例,小編覺(jué)得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。

問(wèn)題描述:輸入一個(gè)鏈表的頭結(jié)點(diǎn),從尾巴到頭反過(guò)來(lái)打印出每個(gè)結(jié)點(diǎn)的值。

首先定義鏈表結(jié)點(diǎn)

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

思路1:此題明顯想到是利用棧的思想,后進(jìn)先出,先遍歷鏈表,依次將結(jié)點(diǎn)值進(jìn)棧。最后在遍歷棧出棧。

public static Stack<Integer> printListReverse_Stack(ListNode listNode){
    Stack<Integer> stack = new Stack<Integer>();
    if(listNode != null){
      ListNode p = listNode;
      while(p != null){
        stack.add(p.val);
        p = p.next;
      }
    }
    return stack;
  }

思路2:直接遍歷鏈表,按照頭插法依次插入ArrayList即可

public static ArrayList<Integer> printListFromTailToHead(ListNode listNode){//表頭也存儲(chǔ)元素
    ArrayList<Integer> print = new ArrayList<Integer>();
    if(listNode == null){
      return print;
    }
    int add = 0;
    ListNode p = listNode;
    while(p != null){
      print.add(0, p.val);
      p = p.next;
    }
    return print;
  }

思路3:可以使用遞歸的思想(本質(zhì)也是棧的思想)

public ArrayList<Integer> printListReversely_Recursively(ListNode listNode){
    ArrayList<Integer> print = new ArrayList<Integer>();
    if(listNode == null){
      return print;
    }
    print.addAll(printListReversely_Recursively(listNode.next));
    print.add(listNode.val);
    return print;
  }

總結(jié)

以上就是本文關(guān)于Java編程實(shí)現(xiàn)從尾到頭打印鏈表代碼實(shí)例的全部?jī)?nèi)容,感興趣的朋友可以參閱:用Java打印九九除法表代碼分析、Java程序打印奧林匹克標(biāo)志方法詳解Java編程用指定字符打印菱形實(shí)例以及本站其他相關(guān)專題,希望對(duì)大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

博湖县| 棋牌| 利津县| 辽中县| 白银市| 临夏市| 东丰县| 舞阳县| 兴文县| 离岛区| 肥城市| 商丘市| 余庆县| 白水县| 寻甸| 新和县| 大丰市| 长岛县| 石景山区| 伽师县| 高安市| 即墨市| 天水市| 庆云县| 大田县| 通化县| 云安县| 泗水县| 灵台县| 百色市| 揭阳市| 安溪县| 绵阳市| 中江县| 策勒县| 鄂托克前旗| 武宣县| 肃北| 东台市| 平顶山市| 南安市|