11.13
// 安全获取左子节点值(避免空指针)
public static Integer getLeftVal(TreeNode node) {
return node != null && node.left != null ? node.left.val : null;
}
// 中序遍历(非递归,避免栈溢出)
public static void inOrderIter(TreeNode root) {
Stack
TreeNode curr = root;
while (curr != null || !stack.isEmpty()) {
// 先遍历左子树
while (curr != null) {
stack.push(curr);
curr = curr.left;
}
curr = stack.pop();
System.out.print(curr.val + " ");
curr = curr.right; // 处理右子树
}
}

浙公网安备 33010602011771号