一、题目
Given a binary tree, return the inorder traversal of its nodes’ values.
Example:
==⇒ D B E A C F
二、简单演示
整个流程的一小部分 如图:
三、代码实现
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
TreeNode node = root;
Stack<TreeNode> stack=new Stack<>();
while (node != null || stack.size() > 0){
while(node != null){
stack.push(node);
node = node.left;
}
if(stack.size() > 0){
node = stack.pop();
result.add(node.val);
node = node.right;
}
}
return result;
}
}