二叉树の作成と遍歴(再帰と非再帰)
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 投稿
二叉树をめぐる遍历アルゴリズム
二叉树の探索方法には、主に以下の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 投稿