121 lines
3.9 KiB
C++
121 lines
3.9 KiB
C++
|
/**
|
|||
|
* File: tree_node.hpp
|
|||
|
* Created Time: 2021-12-19
|
|||
|
* Author: krahets (krahets@163.com)
|
|||
|
*/
|
|||
|
|
|||
|
#pragma once
|
|||
|
|
|||
|
#include <limits.h>
|
|||
|
#include <vector>
|
|||
|
|
|||
|
using namespace std;
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>ṹ<EFBFBD><E1B9B9> */
|
|||
|
struct TreeNode
|
|||
|
{
|
|||
|
int val{}; // <20>ڵ<EFBFBD><DAB5><EFBFBD>ֵ val {} <20><>ʾ<EFBFBD><CABE>ʼ<EFBFBD><CABC>Ϊ 0 <20><> nullptr ({} <20><> C++11 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ֵ<><D6B5>ʼ<EFBFBD><CABC>)
|
|||
|
int height = 0; // <20>ڵ<EFBFBD><DAB5>ĸ߶<C4B8>
|
|||
|
TreeNode *parent{}; // <20><><EFBFBD>ڵ<EFBFBD> {} <20><>ʾ<EFBFBD><CABE>ʼ<EFBFBD><CABC>Ϊ nullptr
|
|||
|
TreeNode *left{}; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> {} <20><>ʾ<EFBFBD><CABE>ʼ<EFBFBD><CABC>Ϊ nullptr
|
|||
|
TreeNode *right{}; // <20>Һ<EFBFBD><D2BA><EFBFBD> {} <20><>ʾ<EFBFBD><CABE>ʼ<EFBFBD><CABC>Ϊ nullptr
|
|||
|
TreeNode() = default; // Ĭ<>Ϲ<EFBFBD><CFB9>캯<EFBFBD><ECBAAF>
|
|||
|
explicit TreeNode(int x, TreeNode *parent = nullptr) : val(x), parent(parent)
|
|||
|
{
|
|||
|
} // <20><><EFBFBD>캯<EFBFBD><ECBAAF>: <20><>ʼ<EFBFBD><CABC><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ֵΪx, <20><><EFBFBD>ڵ<EFBFBD>Ϊparent
|
|||
|
};
|
|||
|
|
|||
|
// <20><><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD>
|
|||
|
// https://www.hello-algo.com/chapter_tree/array_representation_of_tree/
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
|||
|
// [1, 2, 3, 4, None, 6, 7, 8, 9, None, None, 12, None, None, 15]
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
|||
|
// /<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 15
|
|||
|
// /<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7
|
|||
|
// /<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3
|
|||
|
// | \<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6
|
|||
|
// | \<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 12
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
|
|||
|
// \<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2
|
|||
|
// | /<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 9
|
|||
|
// \<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4
|
|||
|
// \<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8
|
|||
|
|
|||
|
/* <20><><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD> */
|
|||
|
/*
|
|||
|
vectorToTreeDFS <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ݹ麯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> arr ת<EFBFBD><EFBFBD>Ϊһ<EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ڵ㡣
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> arr <EFBFBD><EFBFBD> i<EFBFBD><EFBFBD>arr <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i <EFBFBD>ǵ<EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD>鵱ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> i <EFBFBD>Ƿ<EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>Ӧ<EFBFBD><EFBFBD>ֵ<EFBFBD>Ƿ<EFBFBD>Ϊ INT_MAX<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD>Ϊ<EFBFBD>սڵ㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> nullptr<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ㲻Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᴴ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> TreeNode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> arr[i] <EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD> val <EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> vectorToTreeDFS <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 2 * i + 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 2 * i + 2<EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD> arr <EFBFBD>е<EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>Ľڵ㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ӹ<EFBFBD>ϵ<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD>ڵ㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DFS<EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD>ڵ㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
TreeNode *vectorToTreeDFS(vector<int> &arr, int i)
|
|||
|
{
|
|||
|
if (i < 0 || i >= arr.size() || arr[i] == INT_MAX)
|
|||
|
{
|
|||
|
return nullptr;
|
|||
|
}
|
|||
|
TreeNode *root = new TreeNode(arr[i]);
|
|||
|
root->left = vectorToTreeDFS(arr, 2 * i + 1); // <20>ݹ鹹<DDB9><E9B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
root->right = vectorToTreeDFS(arr, 2 * i + 2); // <20>ݹ鹹<DDB9><E9B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return root; // <20><><EFBFBD>ظ<EFBFBD><D8B8>ڵ<EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
TreeNode *vectorToTree(vector<int> arr)
|
|||
|
{
|
|||
|
return vectorToTreeDFS(arr, 0);
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>Ϊ<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ݹ<EFBFBD> */
|
|||
|
/*
|
|||
|
treeToVecorDFS <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ݹ麯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľڵ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DFS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
root<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ǰ<EFBFBD>ݹ<EFBFBD><EFBFBD>Ľڵ㡣
|
|||
|
i<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>á<EFBFBD>
|
|||
|
res<EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD>ڵ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鵱ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD>ӽڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>սڵ㣬ֱ<EFBFBD>ӷ<EFBFBD><EFBFBD>ء<EFBFBD>
|
|||
|
Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> res <EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD>㹻<EFBFBD>ij<EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD>洢<EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i <EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> res <EFBFBD>Ĵ<EFBFBD>С<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> res <EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ i <EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> treeToVecorDFS <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ㡣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Ϊ 2 * i + 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Ϊ 2 * i + 2<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľڵ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
void treeToVecorDFS(TreeNode *root, int i, vector<int> &res)
|
|||
|
{
|
|||
|
if (root == nullptr)
|
|||
|
return;
|
|||
|
while (i >= res.size())
|
|||
|
{
|
|||
|
res.push_back(INT_MAX); // <20><>ʼ<EFBFBD><CABC>Ϊ INT_MAX
|
|||
|
}
|
|||
|
res[i] = root->val;
|
|||
|
treeToVecorDFS(root->left, 2 * i + 1, res);
|
|||
|
treeToVecorDFS(root->right, 2 * i + 2, res);
|
|||
|
}
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>Ϊ<EFBFBD>б<EFBFBD> */
|
|||
|
vector<int> treeToVecor(TreeNode *root)
|
|||
|
{
|
|||
|
vector<int> res;
|
|||
|
treeToVecorDFS(root, 0, res);
|
|||
|
return res;
|
|||
|
}
|
|||
|
|
|||
|
/* <20>ͷŶ<CDB7><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> */
|
|||
|
void freeMemoryTree(TreeNode *root)
|
|||
|
{
|
|||
|
if (root == nullptr)
|
|||
|
return;
|
|||
|
|
|||
|
// <20><>Ҫ<EFBFBD><D2AA><EFBFBD>εݹ<CEB5><DDB9>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ棬<DAB4><E6A3AC><EFBFBD>ͷŸ<CDB7><C5B8>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|||
|
freeMemoryTree(root->left);
|
|||
|
freeMemoryTree(root->right);
|
|||
|
delete root;
|
|||
|
}
|