讨论/《零起步学算法》 - 例题:二叉树的中序遍历/
《零起步学算法》 - 例题:二叉树的中序遍历
共 1 个回复
class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
      //深度优先遍历 => 深度遍历
      List<Integer> res = new LinkedList<>();
      //判空
      if(root == null) {
        return res;
      }
      //栈
      Deque<TreeNode> stack = new LinkedList<>();
      //循环遍历
      while(root != null || !stack.isEmpty()) {
        //说明中根遍历,先左,后根,最后右
        if(root != null) {
          stack.addLast(root);
          root = root.left;
        } else {
        //出栈
        root = stack.removeLast();
        res.add(root.val);
        root = root.right;
      }
      }
      return res;
    }
}
1