1classSolution {2public:3vector<int> inorderTraversal(TreeNode *root) {4vector<int>result;5TreeNode *p =root;6while(p) {7if(p->left) {8TreeNode *q = p->left;9while(q->right && q->right !=p) {10q = q->right;11}12if(q->right ==p) {13result.push_back(p->val);14q-...
然后我进行改进只算我放了几个进去的代码: 1/**2* Definition for binary tree3* public class TreeNode {4* int val;5* TreeNode left;6* TreeNode right;7* TreeNode(int x) { val = x; }8* }9*/10publicclassSolution {11publicList<List<Integer>>levelOrder(TreeNode root) {12List<List<I...
Leetcode 144 binary tree preorder traversal 下面这种写法使用了一个辅助结点p,这种写法其实可以看作是一个模版,对应的还有中序和后序的模版写法,形式很统一,方便于记忆。 辅助结点p初始化为根结点,while循环的条件是栈不为空或者辅助结点p不为空,在循环中首先判断如果辅助结点p存在,那么先将p加入栈中,然后将...
private void pushAllTheLeft(Stack<TreeNode> s, TreeNode root){ s.push(root); while(root.left!=null){ root = root.left; s.push(root); } } } Binary Tree Postorder Traversal Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,...
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代码解释 ...
Leetcode 94: Binary Tree Inorder Traversal-中序遍历 自动驾驶搬砖师 一步一个台阶,一天一个脚印 一、题目描述 给定一个二叉树,返回它的中序遍历。 二、解题思路 2.1 递归法 时间复杂度 O(n) 空间复杂度 O(n) 2.2 迭代法 时间复杂度 O(n) 空间复杂度 O(n)(1) 同理创建一个Stack,然后按左/中/右...
从大的层面讲,Binary Tree 可以用DFS和BFS。 对于BFS,我们需要iterative with queue。 对于DFS,Binary Tree 有三种traversal的方式: ** Inorder Traversal: left -> root -> right ** Preoder Traversal: root -> left -> right ** Postoder Traveral: left -> right -> root ...
Binary Tree Level Order Traversal II是姊妹题,解题思路都是一样的,只是结果要求的顺序是反的,同样有两种方法,也就是经常说到的DFS深度优先遍历和BFS广度优先遍历。 BFS: 广度优先遍历就是一层层地攻略过去,把每一层的所有节点都记录下来再走向下一层。因为每层会有多个节点,不是简单的一个左节点一个右节点的...
/** * 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<i...
理解tree的概念以及binary tree 熟悉不同的遍历方法 使用递归来解决二分树相关的问题 A. 遍历一棵树 Pre-order Traversal In-order Traversal Post-order Traversal Recursive or Iterative 1. Pre-order Traversal(前序遍历): 也就是先访问根节点,然后访问左叶子节点与右叶子节点 ...