[LeetCode]Binary Tree Inorder Traversal
来源:互联网 发布:广东管理网络干部学院 编辑:程序博客网 时间:2024/05/23 02:12
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?
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}"
.递归方法
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<Integer> inorderTraversal(TreeNode root) { if(root == null){ List<Integer> list = new ArrayList<Integer>(); return list; } if(root.left==null&&root.right==null){ List<Integer> list = new ArrayList<Integer>(); list.add(root.val); return list; } List<Integer> leftList = inorderTraversal(root.left); List<Integer> rightList = inorderTraversal(root.right); List<Integer> res = new ArrayList<>(); res.addAll(leftList); res.add(root.val); res.addAll(rightList); return res; }}
stack维护
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<Integer> inorderTraversal(TreeNode root) { Stack<TreeNode> stack = new Stack<>(); List<Integer> res = new ArrayList<Integer>(); 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; }}
0 0
- LeetCode: Binary Tree Inorder Traversal
- [LeetCode]Binary Tree Inorder Traversal
- LeetCode Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal
- Leetcode: Binary Tree Inorder Traversal
- LeetCode Binary Tree Inorder Traversal
- LeetCode : Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal
- 【leetcode】Binary Tree Inorder Traversal
- [LeetCode]Binary Tree Inorder Traversal
- Leetcode: Binary Tree Inorder Traversal
- [leetcode]Binary Tree Inorder Traversal
- LeetCode-Binary Tree Inorder Traversal
- Leetcode Binary Tree Inorder Traversal
- [leetcode] Binary Tree Inorder Traversal
- LeetCode - Binary Tree Inorder Traversal
- [LeetCode] Binary Tree Inorder Traversal
- LeetCode | Binary Tree Inorder Traversal
- AFNetworking使用
- Java多线程程序设计
- 第十三周项目一 数组大折腾(4.删除长度为16整型数组中能被3整除的数)
- fatal error C1083: Cannot open precompiled header file: 'Debug/Example_VC1.pch': No such file or dir
- 给网页设计师和前端开发者看的前端性能优化
- [LeetCode]Binary Tree Inorder Traversal
- 静态内存不能跨函数使用
- 【Leetcode 题解】Min Stack
- android使用WebView来打开文件选择器(相机,相册,曲目)
- 利用javascript实现向UpdatePanel外部传值
- VS2010/MFC flexcell使用
- AFNetworking2.0请求数据时出现错误Requestfailed:unacceptablecontent-type:text/html解决方法
- 0. Qt Creator 用户界面
- Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息