<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          反轉(zhuǎn)鏈表

          共 1364字,需瀏覽 3分鐘

           ·

          2021-02-02 00:51

          難度:簡(jiǎn)單
          來源:206. 反轉(zhuǎn)鏈表

          反轉(zhuǎn)一個(gè)單鏈表。

          示例:

          輸入:?1->2->3->4->5->NULL
          輸出:?5->4->3->2->1->NULL

          進(jìn)階:

          你可以迭代或遞歸地反轉(zhuǎn)鏈表。你能否用兩種方法解決這道題?

          思路:

          • 定義輸出鏈表 prev;
          • 在遍歷鏈表時(shí),將當(dāng)前節(jié)點(diǎn)的?next 指針改為指向前一個(gè)節(jié)點(diǎn)。由于節(jié)點(diǎn)沒有引用其前一個(gè)節(jié)點(diǎn),因此必須事先存儲(chǔ)其前一個(gè)節(jié)點(diǎn)。在更改引用之前,還需要存儲(chǔ)后一個(gè)節(jié)點(diǎn)。最后返回新的頭引用;

          • 順序遍歷鏈表 head , 將其中的元素移入鏈表 prev ;
          • 圖解如下;
          • 而遞歸的思路其實(shí)就是傳遞 2 個(gè)參數(shù),prev 和 curr ,分別用來指定反轉(zhuǎn)后和前的鏈表,思路是差不多的。

          題解一:迭代

          /**
          ?*?Definition?for?singly-linked?list.
          ?*?function?ListNode(val,?next)?{
          ?*?????this.val?=?(val===undefined???0?:?val)
          ?*?????this.next?=?(next===undefined???null?:?next)
          ?*?}
          ?*/

          /**
          ?*?@param?{ListNode}?head
          ?*?@return?{ListNode}
          ?*/

          var?reverseList?=?function(head)?{
          ????//?方法一:迭代實(shí)現(xiàn)
          ????let?prev?=?null
          ????let?curr?=?head
          ????while?(curr?!=?null)?{
          ????????let?next?=?curr.next
          ????????curr.next?=?prev
          ????????prev?=?curr
          ????????curr?=?next
          ????}
          ????return?prev
          };

          題解二:遞歸

          /**
          ?*?Definition?for?singly-linked?list.
          ?*?function?ListNode(val,?next)?{
          ?*?????this.val?=?(val===undefined???0?:?val)
          ?*?????this.next?=?(next===undefined???null?:?next)
          ?*?}
          ?*/

          /**
          ?*?@param?{ListNode}?head
          ?*?@return?{ListNode}
          ?*/

          var?reverseList?=?function(head)?{
          ????const?reverse?=?(prev,?curr)?=>?{
          ????????if?(!curr)?{
          ????????????return?prev
          ????????}
          ????????let?next?=?curr.next
          ????????curr.next?=?prev
          ????????return?reverse(curr,?next)
          ????}
          ????return?reverse(null,?head)
          };


          瀏覽 61
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码在线内射 | 欧美成人精品欧美一 | 中文黄色三级片 | 国产一级无码在线观看 | www.99热精品 |