LeetCode | Binary Tree Inorder Traversal(二叉树的中序遍历)
2014-08-13 20:47
483 查看
Given a binary tree, return the inorder traversal of its nodes' values.
For example:
Given binary tree
return
Note: Recursive solution is trivial, could you do it iteratively?
confused what
read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
The above binary tree is serialized as
题目解析:
就是让中序遍历二叉树。但是题目中给出的{1,2,3,#,#,4,#,#,5}要好好分析下:
创建一个队列:1先入队列,然后将1的孩子2,3入队列,然后将2的孩子入队列,3的孩子入队列,当碰到#就跳过,4的孩子入队列,5的孩子入队列。由于后面没有有效数字了,5的孩子#就被忽略。
但是上面只是表示形式,至于按照这个序列建立出来……还没想好。《数据结构》中是按照先序遍历建立:
下面是针对这道题目的中序遍历,先输出左子树,再输出父亲节点,最后输出右子树。
For example:
Given binary tree
{1,#,2,3},
1 \ 2 / 3
return
[1,3,2].
Note: Recursive solution is trivial, could you do it iteratively?
confused what
"{1,#,2,3}"means? >
read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5
The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}".
题目解析:
就是让中序遍历二叉树。但是题目中给出的{1,2,3,#,#,4,#,#,5}要好好分析下:
创建一个队列:1先入队列,然后将1的孩子2,3入队列,然后将2的孩子入队列,3的孩子入队列,当碰到#就跳过,4的孩子入队列,5的孩子入队列。由于后面没有有效数字了,5的孩子#就被忽略。
但是上面只是表示形式,至于按照这个序列建立出来……还没想好。《数据结构》中是按照先序遍历建立:
下面是针对这道题目的中序遍历,先输出左子树,再输出父亲节点,最后输出右子树。
class Solution { public: vector<int> inorderTraversal(TreeNode *root) { if(root==NULL) return res; inorderTraversal(root->left); res.push_back(root->val); inorderTraversal(root->right); return res; } private: vector<int> res; };
相关文章推荐
- LeetCode Binary Tree Inorder Traversal 中序遍历二叉树
- leetcode 题解:Binary Tree Inorder Traversal (二叉树的中序遍历)
- LeetCode(Construct Binary Tree from Preorder and Inorder Traversal )根据二叉树的中序遍历和后序遍历重建二叉树
- LeetCode:BInary Tree Inorder Traversal(二叉树的中序遍历)
- [线索二叉树] [LeetCode] 不需要栈或者别的辅助空间,完成二叉树的中序遍历。题:Recover Binary Search Tree,Binary Tree Inorder Traversal
- LeetCode 94 Binary Tree Inorder Traversal(二叉树的中序遍历)+(二叉树、迭代)
- LeetCode—***Binary Tree Inorder Traversal二叉树的中序遍历
- LeetCode 94 Binary Tree Inorder Traversal (中序遍历二叉树)
- [leetcode]Construct Binary Tree from Inorder and Postorder Traversal (利用中序遍历和后续遍历确定一颗二叉树)
- LeetCode-94-Binary Tree Inorder Traversal 中序遍历二叉树
- Leetcode - Tree - 106. Construct Binary Tree from Inorder and Postorder Traversal(根据中序遍历和后序遍历重构二叉树)
- [LeetCode] Binary Tree Inorder Traversal 二叉树的中序遍历
- [leetcode]Construct Binary Tree from Preorder and Inorder Traversal(根据前序、中序遍历确定一棵二叉树 C语言)
- Leetcode Construct Binary Tree from Inorder and Postorder Traversal 中序后序遍历重组二叉树
- LintCode Binary Tree Inorder Traversal 二叉树的中序遍历(非递归)
- LeetCode 94:Binary Tree Inorder Traversal(中序遍历)
- LeetCode-Construct Binary Tree from Inorder and Postorder Traversal-中序后序重构二叉树-递归
- Binary Tree Inorder Traversal 二叉树的中序遍历
- LeetCode:105_Construct Binary Tree from Preorder and Inorder Traversal | 根据前序和中序遍历构建二叉树 | Medium
- leetCode 106.Construct Binary Tree from Inorder and Postorder Traversal (根据中序遍历和后序遍历构造二叉树)