144.二叉树的前序遍历
作者:
天山童姥张奶奶 | 来源:发表于
2020-04-16 15:49 被阅读0次/**
* 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.二叉树的前序遍历
本文链接:https://www.haomeiwen.com/subject/hpzrvhtx.html
网友评论