博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode-144-Binary Tree Preorder Traversal]
阅读量:5887 次
发布时间:2019-06-19

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

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

Given binary tree {1,#,2,3},
  1
  \
   2
  /
  3
return [1,2,3].
Note: Recursive solution is trivial, could you do it iteratively?

如下是非递归版本。

void preorderNonRecursiveTraversal(TreeNode*pRoot, vector
& result) { if (pRoot == NULL) return; stack
st; TreeNode* temp; st.push(pRoot); while (!st.empty()) { temp = st.top(); result.push_back(temp->val); st.pop(); if (temp->right != NULL)st.push(temp->right);//先右 后左 if (temp->left != NULL)st.push(temp->left); } } vector
preorderTraversal(TreeNode* root) { vector
result; if (root == NULL) return result; preorderNonRecursiveTraversal(root, result); return result; }

 递归版本:

void PreOrder(TreeNode* pRoot, vector
& result) { if (pRoot != NULL) { result.push_back(pRoot); PreOrder(pRoot->left, result); PreOrder(pRoot->right, result); } }

 

转载于:https://www.cnblogs.com/hellowooorld/p/6441897.html

你可能感兴趣的文章
ubuntu不能登陆死循环问题解决
查看>>
exchange 2016 安装开源垃圾邮件网关
查看>>
javascript鼠标事件【部分】
查看>>
SSH 通过密钥登录
查看>>
今天只是一个开始
查看>>
Mycat读写分离以及拆库拆表综合实验2:部署配置mycat读写分离与拆库拆表
查看>>
程序至上
查看>>
Linux系统详细启动流程
查看>>
高性能golang后端处理网络模块包
查看>>
android面试题
查看>>
test
查看>>
郭宇:Airpub - 纯前端博客引擎实践
查看>>
Progress Image View
查看>>
开源 免费 java CMS - FreeCMS1.5-数据对象-job
查看>>
开源 java CMS - FreeCMS2.3字典管理
查看>>
开源 java CMS - FreeCMS2.4 模板管理
查看>>
理解HTTP session原理及应用
查看>>
JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
查看>>
maven环境快速搭建
查看>>
什么是单链表插入排序?
查看>>