递归 class Solution(object): def generate(self, root, result): if root: self.inorder (root.left, list) result.append(root.val) self.inorder(root.right, list)
TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void InOrder (TreeNode *root,vector<int>&vec) { if(root==NULL) return ; InOrder(root->left,vec ); vec.push_back(root->val); InOrder(root->right,vec); } vector<int> inorderTraversal (TreeNode *root) { vector<int>vec; InOrder(root,vec); return vec; } };
问题描述 Given a binary tree, return the inorder traversal of its nodes’ values.
Question : Given a binary tree, return the inorder traversal of its nodes' values. break; } } } return result; } }; 参考推荐: Binary Tree Inorder
根据中序遍历的顺序,对于任一结点,优先访问其左孩子,而左孩子结点又可以看做一根结点,然后继续访问其左孩子结点,直到遇到左孩子结点为空的结点才进行访问,然后按照相同的规则访问其 右子树。因此处理过程如下:
Given a binary tree, return the inorder traversal of its nodes' values.
思路 用一个stack<TreeNode *>解决问题。先尽可能往左地把节点放入栈。 每次取出节点并访问,再对它的右节点尽可能往左地放入栈即可。 详情
Binary Tree Inorder Traversal Desicription Given a binary tree, return the inorder traversal of its nodes
题目 /** * 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: TreeNode* s[100005]; vector<int> inorderTraversal(TreeN
Problem # Given a binary tree, return the inorder traversal of its nodes' values. # # For example: # AC DFS: class Solution(): def inorderTraversal(self, root): res = [] self.inorder (root, res) return res def inorder(self, root, res): if not root: return self.inorder(root.left, res) res.append(root.val) self.inorder(root.right, res
链接:https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description Construct Binary Tree from Inorder and Postorder Traversal Given inorder and postorder traversal of a Construct Binary Tree from Preorder and Inorder Traversal类似。 ; i++) inorderMap.put(inorder[i],i); return buildTree(inorder, 0, inorder.length- 1, postorder, 0, postorder.length-1, inorderMap); } public TreeNode buildTree(int[] inorder
问题描述 Given a binary tree, return the inorder traversal of its nodes' values.
Binary Tree Inorder Traversal Given a binary tree, return the inorder traversal of its nodes' values.
问题: Given a binary tree, return the inorder traversal of its nodes' values.
题目 /** * 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: TreeNode* s[100005];
题目: Given preorder and inorder traversal of a tree, construct the binary tree. inEnd); return root; } public: TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder (), inorder.end()); return root; } }; 其中find函数的签名如下: template <class InputIterator, class (), inorder.end()); return root; } }; Java参考代码: 思路和上面一样,不过Java从数组中选择某个元素需要进行遍历(也可以转成List , 0, inorder.length);; return root; } }
* @return: Inorder in ArrayList which contains node values. */ public ArrayList<Integer
Given inorder and postorder traversal of a tree, construct the binary tree. }; */ class Solution { public: TreeNode* dfs(vector<int>& preorder, int ps,int pe,vector<int>& inorder ,is,ie-pos-1); root->right=dfs(preorder,pe-pos,pe-1,inorder,ie-pos+1,ie); return root; } TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) { return dfs(postorder,0,inorder.size()-1,inorder,0,inorder.size()-1); } };
题目: Given inorder and postorder traversal of a tree, construct the binary tree. 思路分析: 这道题和上道题《 Leetcode: Construct Binary Tree from Preorder and Inorder Traversal 》的思路类似。 + leftSize, postEnd - 1); return root; } public: TreeNode *buildTree(vector<int> &inorder (), inorder.end(), postorder.begin(), postorder.end()); return root; } }; Java参考代码: /** , 0, inorder.length, postorder, 0, postorder.length); return root; } }
Question: Given inorder and postorder traversal of a tree, construct the binary tree. () == 0) return NULL; return createTree(inorder, 0, inorder.size() - 1, postorder , vector<int> &inorder, int in_offset, int len) { if (! (postorder, postorder.size()-1, inorder, inorder.size()-1, postorder.size()); } }; 参考推荐: Construct Binary Tree from Inorder and Postorder Traversal