1. 程式人生 > 其它 >面試題32 - I. 從上到下列印二叉樹

面試題32 - I. 從上到下列印二叉樹

做題思路 or 感想:

  1,用雙指標法便可解決

  2,這種連結串列的題自己畫一下圖就很快理解了,相當有意思啊

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode() : val(0), next(nullptr) {}
 7  *     ListNode(int x) : val(x), next(nullptr) {}
 8  *     ListNode(int x, ListNode *next) : val(x), next(next) {}
9 * }; 10 */ 11 class Solution { 12 public: 13 ListNode* reverseList(ListNode* head) { 14 if (head == nullptr)return nullptr; //防止奇怪的測試用例 15 ListNode* slow = nullptr; //初始化兩個指標 16 ListNode* fast = head; 17 while (fast != nullptr) { 18 ListNode* temp = fast->next; //
用temp儲存後面的方向,防止後面的指標丟失方向 19 fast->next = slow; //快節點指向後面(反轉),然後快慢指標同時向前走一個節點的位置 20 slow = fast; 21 fast = temp; 22 } 23 return slow; //最後fast為nullptr,得到的slow固然是新的頭節點了 24 } 25 };