LeetCode513. Find Bottom Left Tree Value找樹左下角的值

513. Find Bottom Left Tree Value 原題鏈接

關鍵詞: 廣度優先搜索(BFS)

簡單回憶一下BFS:BFS在遍歷圖時首先從源節點出發遍歷其子節點,並將其放入隊列中,繼續依次對這些子節點進行上述操作。

這道題屬於找對路子很方便,沒找對就很沙雕 = =。
一開始我打算老老實實從左遍歷的,但當我自己模擬一遍的時候我傻了,瑪哎我還要記錄每個值來自左右以及其高度伐?(當然這個來自左右是我一開始對這個題意的誤解,題目只說了要給出最左的數值即可,我一開始看成了最底層左葉子的值了,這個怪我)

So, 左邊不爽來右邊嘛,搞出來的代碼如下,這個對樹的層遍歷即一個簡單的BFS。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int findBottomLeftValue(TreeNode* root) {
        queue<TreeNode*> que;
        que.push(root);
        TreeNode* ptr = nullptr;
        
        while(!que.empty()){
           ptr = que.front();
           if(ptr->right)
               que.push(ptr->right);
           if(ptr->left)
               que.push(ptr->left);        
           que.pop();
        }
        return ptr->val;
        
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章