/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
递归
class Solution {
List<Integer> lists = new ArrayList<>();
public List<Integer> preorderTraversal(TreeNode root) {
if(root == null) return lists;
lists.add(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
return lists;
}
}
非递归 利用栈
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> lists = new ArrayList<>();
Stack<TreeNode> stack = new Stack<>();
TreeNode curr = root;
while(curr != null||!stack.isEmpty()){
while(curr != null){
stack.push(curr);
lists.add(curr.val);
curr = curr.left;
}
curr = stack.pop(); //弹出栈顶元素
curr = curr.right;
// curr = stack.pop().right;
}
return lists;
}
}
144.二叉树的前序遍历
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。