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
最新推荐文章于 2024-10-21 16:07:39 发布
本文详细介绍了使用Java实现二叉树前序遍历的方法,通过栈操作完成节点的压入与弹出,确保遍历顺序为根、左、右。
1103

被折叠的 条评论
为什么被折叠?



