博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode:binary-tree-preorder-traversal
阅读量:4180 次
发布时间:2019-05-26

本文共 1015 字,大约阅读时间需要 3 分钟。

题目描述:

Given a binary tree, return the preorder traversal of its nodes' values.

For example:

Given binary tree{1,#,2,3},

1    \     2    /   3

return[1,2,3].

实现:

1.递归方式

class Solution {public:    void PreOrder(TreeNode *root,vector
& vc)//注意这里一定是传递引用,不是传递值 { if(root!=NULL) { vc.push_back(root->val); PreOrder(root->left,vc); PreOrder(root->right,vc); } } vector
preorderTraversal(TreeNode *root) { vector
vc; PreOrder(root,vc); return vc; }};

2.非递归方式

class
Solution {
public
:
    
vector<
int
> preorderTraversal(TreeNode *root) {
        
vector<
int
> vc;
        
stack
mystack;
         
if
(root == NULL){
            
return
vc;
        
}
        
mystack.push(root);
        
while
(!mystack.empty())
           
{
            
TreeNode *temp=mystack.top();
            
vc.push_back(temp->val);
            
mystack.pop();
            
if
(temp->right!=NULL)
                
mystack.push(temp->right);
            
if
(temp->left!=NULL)
                
mystack.push(temp->left);
        
}
        
return
vc;
         
    
}
};

转载地址:http://cohai.baihongyu.com/

你可能感兴趣的文章
java内存泄漏
查看>>
HttpClient教程
查看>>
Intellij IDEA【模拟http请求】
查看>>
四种常见的 POST 提交数据方式
查看>>
REST简介
查看>>
JAVA中重写equals()方法为什么要重写hashcode()方法?
查看>>
SimpleDateFormat线程不安全
查看>>
eclipse下生成Java类图和时序图,生成UML图
查看>>
M文件程序设计(matlab)
查看>>
matlab基础知识
查看>>
程序员的职业素养
查看>>
一道面试题深入了解java底层
查看>>
java下载附件
查看>>
cron表达式每个月最后一天
查看>>
定时任务-在spring中配置quartz
查看>>
java枚举与常量类的区别
查看>>
sql之left join、right join、inner join的区别
查看>>
Oracle中Like与Instr模糊查询性能大比拼
查看>>
Lucene 实例教程(一)初识Lucene
查看>>
Lucene 实例教程(二)之IKAnalyzer中文分词器
查看>>