二叉树遍历
1.前序遍历(非递归)
/**
* 前序遍历(非递归方式)
* 1.先入栈根结点,输出根结点value值,再先后入栈其右结点、左结点;
* 2.出栈左结点,输出其value值,再入栈该左结点的右结点、左结点;直到遍历完该左结点所在子树。
* 3.再出栈右结点,输出其value值,再入栈该右结点的右结点、左结点;直到遍历完该右结点所在子树。
* @param root
*/
public static void preOrder(TreeNode root) {
Stack<TreeNode> stack = new Stack<>();
if (root != null) {
stack.push(root);
}
while (!stack.isEmpty()) {
TreeNode top = stack.pop();
System.out.print(top.value);
if (top.right != null) {
stack.push(top.right);
}