您的位置:首页 > 其它

Binary Tree Inorder Traversal(转)

2015-07-26 23:18 302 查看
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]
.

Java代码



/**

* Definition for a binary tree node.

* public class TreeNode {

* int val;

* TreeNode left;

* TreeNode right;

* TreeNode(int x) { val = x; }

* }

*/

public class Solution {

public List<Integer> inorderTraversal(TreeNode root) {

List<Integer> res = new ArrayList<>();

dfs(root, res);

return res;

}

private void dfs(TreeNode root, List<Integer> res) {

if (root != null) {

dfs(root.left, res);

res.add(root.val);

dfs(root.right, res);

}

}

}

Java代码



/**

* Definition for a binary tree node.

* public class TreeNode {

* int val;

* TreeNode left;

* TreeNode right;

* TreeNode(int x) { val = x; }

* }

*/

public class Solution {

public List<Integer> inorderTraversal(TreeNode root) {

List<Integer> res = new ArrayList<>();

if (root == null) {

return res;

}

LinkedList<TreeNode> stack = new LinkedList<>();

while (root!=null || !stack.isEmpty()) {

if (root!=null) {

stack.push(root);

root = root.left;

} else {

root = stack.pop();

res.add(root.val);

root = root.right;

}

}

return res;

}

}
http://hcx2013.iteye.com/blog/2230218
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: