public class BinaryTreePreorderTraversal {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> ls = new ArrayList<Integer>();
if (root == null)
return ls;
//压入root节点
Stack<TreeNode> st = new Stack<TreeNode>();
st.push(root);
//重点在这个循环
while (!st.isEmpty()) {
//取出栈顶节点,加入列表中
TreeNode temp = st.pop();
ls.add(temp.val);
//右节点入栈
if (temp.right != null)
st.push(temp.right);
//左节点入栈
if (temp.left != null)
st.push(temp.left);
}
return ls;
}
}
【LeetCode-144】Binary Tree Preorder Traversal
最新推荐文章于 2016-12-21 15:16:02 发布