iT邦幫忙

2024 iThome 鐵人賽

0
佛心分享-刷題不只是刷題

刷經典 LeetCode 題目系列 第 77

經典LeetCode 222. Count Complete Tree Nodes

  • 分享至 

  • xImage
  •  

題目:

給定一棵完全二元樹,請計算這棵樹的節點總數。

  • 完全二元樹的特點是:
    除了最後一層,其餘所有層的節點都是滿的,最後一層的節點從左到右排列。

解題思路

使用 DFS 遞迴方式來計數,

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    int countNodes(TreeNode* root) {
        return dfs(root);
    }

private:
    int dfs(TreeNode* root) {
        if (root == nullptr)
            return 0;

        return 1 + dfs(root->left) + dfs(root->right);
    }
};

參考:
#222. Count Complete Tree Nodes


上一篇
經典LeetCode 112. Path Sum
系列文
刷經典 LeetCode 題目77
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言