二叉树の作成と遍歴(再帰と非再帰)

1. 二叉树から文字列の生成 アイデア:通常の前順再帰遍歴に基づいて、右部分木が空の場合を考慮する。 class Solution { public: string tree2str(TreeNode* root) { if (root == nullptr) return ""; if (root->left == nullptr && root->right == nullptr) return to_string(root->val); if (root->right ...

7月26日 19:56 投稿

二叉木の構造と概念の詳細解説

一、木の構造と概念 1.1 木の概念 木は非線形のデータ構造であり、n(n≧0)個の有限ノードが階層関係を持つ集合です。根ノードは特別なノードで、前駆ノードを持たないです。 1.2 木に関連する概念 ノードの次数:ノードが持つ子木の数。 葉ノードまたは終端ノード:次数が0のノード。 非終端ノードまたは分岐ノード:次数が0でないノード。 親ノードまたは父ノ ...

7月19日 22:28 投稿

二叉树における探索・判定・再帰的構築のアルゴリズム実装

最下段の左端ノード値の取得 指定された二叉樹に対して、最下層に位置する左端のノードが保持する数値を特定します。幅優先探索(BFS)を用いて木を階層ごとに処理し、各レベルの走査開始時に最初に訪問するノードを記録します。探索が完全に終了した時点で最後に記録された値が、要件を満たす最下段左端ノードの値となります。このアプローチにより、キューの順序を意図的 ...

5月20日 04:52 投稿

二叉树をめぐる遍历アルゴリズム

二叉树の探索方法には、主に以下の3つの方式があります: 先順序探索 中順序探索 後順序探索 以下に、それぞれの探索方法の実装例を示します: 再帰的探索 class Solution { public: vector<int> result; void preorder(BinaryTreeNode<int>* node) { if (node == nullptr) return; result.push_back(node->value); p ...

5月20日 03:41 投稿