LeetCode 144. Binary Tree Preorder Traversal
考点 | 难度 |
---|---|
Tree | Easy |
题目
Given the root
of a binary tree, return the preorder traversal of its nodes’ values.
思路
利用stack的first in last out,每次按right child - left child的顺序push,再依次pop出来。
答案
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> pre = new LinkedList<Integer>();
if(root==null) return pre;
Stack<TreeNode> tovisit = new Stack<TreeNode>();
tovisit.push(root);
while(!tovisit.empty()) {
TreeNode visiting = tovisit.pop();
pre.add(visiting.val);
if(visiting.right!=null) tovisit.push(visiting.right);
if(visiting.left!=null) tovisit.push(visiting.left);
}
return pre;
}