当前位置:网站首页>LeetCode144. Preorder traversal of binary tree
LeetCode144. Preorder traversal of binary tree
2022-07-07 22:49:00 【Qingshan's green shirt】
Preorder traversal of two tree
List of articles
1. problem
2. Ideas
1. First, let's introduce root first traversal — According to the root - Left son - The right son traverses the whole binary tree in order
2. Recursive method
3. Iterative method
Stack is not empty , One node per stack , Put it into the return array ! After a node is out of the stack, its right and left children enter the stack ( In order !)
3. Code implementation
(1) recursive
class Solution {
public:
void PreOrder(TreeNode*cur,vector<int>& vec)
{
if(cur == NULL)return;
vec.push_back(cur->val);// root visit !
PreOrder(cur->left,vec);// Left
PreOrder(cur->right,vec);// Right
}
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
PreOrder(root, result);
return result;
}
};
(2) iteration ( Utilization stack )
// Put the linear stack of binary tree nodes
class stack{
public:
//1. initialization
void InitStack(){
top = 0;
}
//2. Binary tree pointer stack
void Push(TreeNode *p){
stack[top++] = p;
}
//3. Bomb stack
void Pop(){
top--;
}
//4. Sentenced to empty
bool Empty() {
if (top == 0)return true;
return false;
}
//5. Take the top element of the stack
TreeNode* Top( ){
return stack[top-1];
}
private:
int top;
TreeNode *stack[512];
};
// Iterative method
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
stack st;
st.InitStack();// initialization
vector<int> result;
if(root == NULL) return result;
st.Push(root);// The root node is in the stack !
while(!st.empty())// Stack is not empty
{
TreeNode* node = st.Top();// The pointer points to the top node of the stack // in
st.Pop();// Out of the stack
result.push_back(node->val);
if(node->right) st.Push(node->right);// The right son enters the stack !( Empty nodes do not stack )
if(node->left) st.Push(node->left);// Left son into the stack !( Empty nodes do not stack )
}
return result; // The stack is empty. , end
}
};
边栏推荐
- vite Unrestricted file system access to
- [azure microservice service fabric] the service fabric cluster hangs up because the certificate expires (the upgrade cannot be completed, and the node is unavailable)
- Aspose. Word operation word document (I)
- Details of the open source framework of microservice architecture
- Unity technical notes (II) basic functions of scriptableobject
- Select sort (illustration +c code)
- Aspose. Word operation word document (II)
- 详解全志V853上的ARM A7和RISC-V E907之间的通信方式
- Write in front -- Talking about program development
- 戴森官方直营店免费造型服务现已开放预约 先锋科技诠释护发造型理念,助力消费者解锁多元闪耀造型
猜你喜欢
行测-图形推理-4-字母类
“拧巴”的早教行业:万亿市场,难出巨头
CTF练习
微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈
详解全志V853上的ARM A7和RISC-V E907之间的通信方式
Antd date component appears in English
苹果在iOS 16中通过'虚拟卡'安全功能进一步进军金融领域
Signal feature extraction +lstm to realize gear reducer fault diagnosis -matlab code
Loki, the "open source star picking program", realizes the efficient management of harbor logs
Robot autonomous exploration DSVP: code parsing
随机推荐
IP网络主动测评系统——X-Vision
Redis cluster installation
UWA Q & a collection
. Net automapper use
Kaggle-Titanic
行测-图形推理-5-一笔画类
Matplotlib快速入门
Customer case | China law network, through observing the cloud, greatly shortens the time of fault location
Aspose. Word operation word document (I)
Leetcode1984. Minimum difference in student scores
Time convolution Network + soft threshold + attention mechanism to realize residual life prediction of mechanical equipment
数字化转型:五个步骤推动企业进步
Nx10.0 installation tutorial
Explain in detail the communication mode between arm A7 and risc-v e907 on Quanzhi v853
Two methods of calling WCF service by C #
Debezium系列之:引入对 LATERAL 运算符的支持
Get the week start time and week end time of the current date
C development -- WPF simple animation
6-3 find the table length of the linked table
Px4 autonomous flight