直接看代码吧
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
//声明一个队列变量,用来遍历二叉树
Deque<TreeNode> queue = new LinkedList<TreeNode>();
//声明一个List变量,用来存储节点,最终返回这个list数组
List<Integer> list=new ArrayList<Integer>();
//如果树为空,返回list,此时list也为空
if(root==null) return list;
//否则
while(root!=null||!queue.isEmpty()){
//一直遍历当前节点的左子树,将左子树推入栈,直到左子树遍历完
while(root!=null){