二叉树の作成と遍歴(再帰と非再帰)
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 投稿