leetCode . Binary Tree Inorder/ Preorder/ Post Traversal iteratively
来源:互联网 发布:linux如何跟踪路由 编辑:程序博客网 时间:2024/06/11 11:20
问题
https://leetcode.com/problems/binary-tree-inorder-traversal/
https://leetcode.com/problems/binary-tree-postorder-traversal/
https://leetcode.com/problems/binary-tree-preorder-traversal/
解法
http://www.cnblogs.com/AnnieKim/archive/2013/06/15/morristraversal.html
Inorder 时间复杂度 3N 空间复杂度 O(1)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> ret; TreeNode* cur = root; while(cur != NULL) { if (cur->left == NULL) { ret.push_back(cur->val); cur = cur->right; } else { TreeNode * pre = cur->left; while(pre->right != NULL && pre->right != cur) pre = pre->right; if (pre->right == NULL) { pre->right = cur; cur = cur->left; } else { pre->right = NULL; ret.push_back(cur->val); cur = cur->right; } } } return ret; }};
Preorder 时间复杂度 3N 空间复杂度 O(1)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> ret; TreeNode *cur = root; while(cur != NULL) { if (cur->left == NULL) { ret.push_back(cur->val); cur = cur->right; } else { TreeNode * pre = cur->left; while(pre->right != NULL && pre->right != cur) pre = pre->right; if (pre->right == NULL) { ret.push_back(cur->val); pre->right = cur; cur = cur->left; }else { pre->right = NULL; cur = cur->right; } } } return ret; }};
0 0
- leetCode . Binary Tree Inorder/ Preorder/ Post Traversal iteratively
- [LeetCode] Binary Tree Inorder Traversal - Iteratively
- 【LeetCode】Binary Tree Preorder &Inorder & Postorder Traversal
- LeetCode--Binary Tree Traversal ( Inorder, Preorder, PostOrder)
- Data Structure: How to traversal Binary Tree Iteratively (Preorder, Inorder and Postorder)
- *(leetcode) Construct Binary Tree from Preorder and Inorder Traversal (tree)
- LeetCode[Tree]: Construct Binary Tree from Preorder and Inorder Traversal
- [leetcode][tree] Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode: Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode]Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode Construct Binary Tree from Preorder and Inorder Traversal
- [Leetcode] Construct Binary Tree from Preorder and Inorder Traversal
- Leetcode: Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode Construct Binary Tree from Preorder and Inorder Traversal
- leetcode 109: Construct Binary Tree from Preorder and Inorder Traversal
- 【leetcode】Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode]Construct Binary Tree from Preorder and Inorder Traversal
- Android 6.0 双向通话自动录音
- RatingBar的自定义效果
- 排序算法java实现
- 深入理解 JavaScript 闭包
- 采样、过采样和压缩感知
- leetCode . Binary Tree Inorder/ Preorder/ Post Traversal iteratively
- Spring源码深度解析(一)Spring的整体架构
- 腾讯视频怎么转成MP4格式
- 中国实体经济复苏或许已近尾声
- drawRoundRect 边线跟角线粗细不一样
- 不用加减乘除做加法
- 升级您的ERP系统
- 根据最小字段查找某一表中的记录
- 千万不要误用 java 中的 HashCode 方法