【Leetcode】Binary Tree Inorder Traversal

来源:互联网 发布:数据库视频百度云 编辑:程序博客网 时间:2024/06/05 12:03

题目链接:https://leetcode.com/problems/binary-tree-inorder-traversal/

题目:

Given a binary tree, return the inorder traversal of its nodes' values.

For example:
Given binary tree {1,#,2,3},

   1    \     2    /   3

return [1,3,2].

Note: Recursive solution is trivial, could you do it iteratively?

思路:

用栈模拟中序遍历过程

算法:

public List<Integer> inorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<Integer>();Stack<TreeNode> stack = new Stack<TreeNode>();while (root != null || !stack.isEmpty()) {if (root != null) {stack.push(root);root = root.left;  } else { //左子树为空,则访问val,且开始遍历右子树root = stack.pop();list.add(root.val);root = root.right;}}return list;}




0 0