Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [1,2,3]
.
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); if (root != null) { Stack<TreeNode> stack = new Stack<TreeNode>(); stack.add(root); while (!stack.isEmpty()) { root = stack.pop(); res.add(root.val); if (root.right != null) { stack.push(root.right); } if (root.left != null) { stack.push(root.left); } } } return res; } }
相关推荐
144.Binary_Tree_Preorder_Traversal二叉树的前序遍历【LeetCode单题讲解系列】
Construct Binary Tree from Preorder and Inorder Traversal 根据先序,中序建立二叉树
python python_leetcode题解之144_Binary_Tree_Preorder_Traversal
144-Binary Tree Preorder Traversal94-Binary Tree Inorder Traversal145-Binary Tree Postorder Traversal(后续的非递归时间不够可以先跳过,有点难)层次遍历,队列辅助,相当于广搜。102-Binary Tree Level ...
javascript js_leetcode题解之144-binary-tree-preorder-traversal.js
在这个名为"Binary tree traversal.zip"的压缩包中,包含了作者在算法课上完成的一个关于二叉树遍历的作业。这个作业使用C++编程语言,并在Visual Studio 2019环境下编写。以下是关于二叉树遍历的详细知识: 1. **...
105.construct_binary_tree_from_preorder_and_inorder_traversal从前序
先序遍历(Preorder Traversal)是遍历二叉树的一种方法,它按照“根-左-右”的顺序访问树中的每个节点。在本主题中,我们将探讨如何实现先序遍历以及将其结果以树状打印出来。 先序遍历是一种递归算法,其基本步骤...
leetcode 530 力扣在线评委 # 问题 困难 解决方案 1 简单的 2 中等的 3 中等的 ...Binary Tree Preorder Traversal 2016.06.06 94. Binary Tree Inorder Traversal 318. Maximum Product of Word Length
在`BinaryTree_PreOrder.java`中,应该能找到前序遍历的代码实现,其递归版本会首先访问根节点,然后遍历左子树,最后遍历右子树。 5. **遍历算法的非递归实现** 虽然递归是最直观的方法,但非递归实现(如使用栈...
- 前序遍历 (Preorder Traversal) - 中序遍历 (Inorder Traversal) - 后序遍历 (Postorder Traversal) - 层次遍历 (Level Order Traversal) ##### 2.2 进阶操作 - **查找**: 在二叉树中查找特定的节点。 - **...
* [Binary Search Tree](https://github.com/kamyu104/LeetCode#binary-search-tree) * [Breadth-First Search](https://github.com/kamyu104/LeetCode#breadth-first-search) * [Depth-First Search]...
LeetCode笔记本docsifyjsLeetCode算法Java c / c ++ javascript的基本知识简单的1. Two Sum 704. Classical Binary Search2. 3 Sum206. Reverse Linked List中等的... Binary Tree Preorder Traversal145. Binary Tree
主要有三种类型的遍历:前序遍历(Preorder Traversal)、后序遍历(Postorder Traversal)和中序遍历(Inorder Traversal)。前序遍历先访问根节点,再遍历左子树,最后遍历右子树;后序遍历则是先遍历左子树和右子...
在标签“BinaryTree”中,我们聚焦于二叉树相关的算法和数据结构。二叉树的其他遍历方法还包括前序遍历(Preorder Traversal,根-左-右)、中序遍历(Inorder Traversal,左-根-右)和后序遍历(Postorder Traversal...
例如,"Binary Tree Preorder Traversal"(二叉树的前序遍历)要求使用递归或迭代方法遍历二叉树节点,这对于理解递归和树结构的遍历至关重要。 在解决LeetCode问题的过程中,开发者不仅能够提升编程技巧,还能锻炼...
再如,"Binary Tree Preorder Traversal"(二叉树的前序遍历)是一个与数据结构“树”紧密相关的问题。在Java中,我们可以用递归或栈来实现树的遍历。递归方式简洁明了,但需要注意处理递归基;栈方法则需要模拟调用...
在这个场景中,我们关注的是如何通过先序遍历(Preorder Traversal)和中序遍历(Inorder Traversal)的数据来“恢复”一个二叉树。这个问题来源于计算机科学中的树结构重建问题,常用于面试或算法训练。 先序遍历...
4. "Binary Tree Preorder Traversal":递归或迭代方式实现二叉树的前序遍历。 六、进阶挑战 随着对LeetCode的深入,可以尝试更高级别的题目,如图算法、位运算、字符串处理等。同时,参加LeetCode的周赛和双周赛,...