详细分析可参考LeetCode上的一篇博文。具体程序如下: 1vector<int> inorderTraversal(TreeNode*root) {2vector<int>rVec;3stack<TreeNode *>st;4TreeNode *tree =root;5while(tree || !st.empty())6{7if(tree)8{9st.push(tree);10tree = tree->left;11}12else13{14tree =st.top();15rVec.push...
当前节点更新为当前节点的右孩子。 1/**2* Definition for binary tree3* struct TreeNode {4* int val;5* TreeNode *left;6* TreeNode *right;7* TreeNode(int x) : val(x), left(NULL), right(NULL) {}8* };9*/10classSolution {11public:12vector<int> preorderTraversal(TreeNode *root) ...
class Solution(object): def _preorderTraversal(self, root, result): if root: result.append(root.val) self._preorderTraversal(root.left, result) self._preorderTraversal(root.right, result) def preorderTraversal(self, root): """ :type root: TreeNode :rtype: List[int] """ if root ==...
vector<int>path; voidpreorder(TreeNode*root){ if(!root) return; path.push_back(root->val); //if(root->left) preorder(root->left); //if(root->right) preorder(root->right); } vector<int>preorderTraversal(TreeNode*root) { preorder(root); returnpath; } }; 1. 2. 3. 4. 5. ...
解法三 Morris Traversal 上边的两种解法,空间复杂度都是O(n),利用 Morris Traversal 可以使得空间复杂度变为 O(1)。 它的主要思想就是利用叶子节点的左右子树是 null ,所以我们可以利用这个空间去存我们需要的节点,详细的可以参考 94 题 中序遍历。 public List<Integer> preorderTraversal(TreeNode root) { Li...
The function returns the root of the constructed binary tree. 4. Time & Space Complexity Analysis: 4.1 Time Complexity: 4.1.1 Lists as parameters In each recursive call, the index() function is used to find the index of the root value in the inorder traversal list. This function has a ...
Morris traversal: My code: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */publicclassSolution{publicList<Integer>preorderTraversal(TreeNoderoot){List<Integer>ret=newArrayList<...
** Inorder Traversal: left -> root -> right ** Preoder Traversal: root -> left -> right ** Postoder Traveral: left -> right -> root 记忆方式:order的名字指的是root在什么位置。left,right的相对位置是固定的。 图片来源:https://leetcode.com/articles/binary-tree-right-side-view/ ...
102. 二叉树的层序遍历 - 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: [https://assets.leetcode.com/uploads/2021/02/19/tree1.jpg] 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree [3,9,20,null,null,15,7], 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ...