标签:leetcode
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?
原题链接:https://oj.leetcode.com/problems/binary-tree-inorder-traversal/
题目:给定一二叉树,返回其节点值的中序遍历。
中序遍历:左子-》根-》右子
递归解法:
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<Integer>();
if(root == null)
return list;
list.addAll(inorderTraversal(root.left));
list.add(root.val);
list.addAll(inorderTraversal(root.right));
return list;
}
// Definition for binary tree
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<Integer>();
if (root == null)
return list;
Stack<TreeNode> stack = new Stack<TreeNode>();
TreeNode p = root;
while (!stack.isEmpty() || p != null) {
if (p != null) {
stack.push(p);
p = p.left;
} else {
TreeNode tmp = stack.pop();
list.add(tmp.val);
p = tmp.right;
}
}
return list;
}LeetCode——Binary Tree Inorder Traversal,布布扣,bubuko.com
LeetCode——Binary Tree Inorder Traversal
标签:leetcode
原文地址:http://blog.csdn.net/laozhaokun/article/details/38610661