LeetCode 094 Binary Tree Inorder Traversal
来源:互联网 发布:unity3d 2d素材 编辑:程序博客网 时间:2024/05/30 23:28
题目
Given a binary tree, return the inorder traversal of its nodes' values.
中序遍历,递归、迭代两种方式
2 迭代
15.4.8
1 练习,练习,练习
2 递归很简单
3 迭代中序比前序要难一点,但是思路清楚的话,还是很容易写的。
1 递归
public class Solution { public ArrayList<Integer> inorderTraversal(TreeNode root) { ArrayList<Integer> ans = new ArrayList<Integer>(); useme(root,ans); return ans; } public void useme(TreeNode root,ArrayList<Integer> ans){ if(root!=null){ useme(root.left,ans); ans.add(root.val); useme(root.right,ans); } }}
2 迭代
public class Solution { public ArrayList<Integer> inorderTraversal(TreeNode root) { ArrayList<Integer> ans = new ArrayList<Integer>(); LinkedList<TreeNode> stack = new LinkedList<TreeNode>(); if(root==null){ return ans; } TreeNode cur = root; while(true){ while(cur!=null){ stack.push(cur); cur = cur.left; } if(stack.isEmpty()){ break; } cur = stack.pop(); ans.add(cur.val); cur = cur.right; } return ans; }}
15.4.8
public class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> ans = new ArrayList<Integer>(); LinkedList<TreeNode> stack = new LinkedList<TreeNode>(); if(root == null){ return ans; } TreeNode cur = root; while((!stack.isEmpty()) || cur !=null){ while(cur!=null){ stack.push(cur); cur = cur.left; } cur = stack.pop(); ans.add(cur.val); cur = cur.right; } return ans; }}
更新的写法更加好记,只要 栈不为空 或者 目前节点还有,就继续玩下去。这样的判断非常直观。
0 0
- LeetCode 094 Binary Tree Inorder Traversal
- LeetCode: Binary Tree Inorder Traversal [094]
- LeetCode 094 Binary Tree Inorder Traversal
- leetcode 094 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
- JVM的几点性能优化
- 系统设计
- Ubuntu 10.04下安装fcitx
- 家庭必备地震应急包 四步辨别产品真假
- 验证码的两种生成方式
- LeetCode 094 Binary Tree Inorder Traversal
- 纪念我的心的博客诞生了
- 央行禁止金融机构服务比特币,比特币暴跌20%
- hdu----2098
- HTML中引入编辑框
- synchronized和volatile笔记
- 计算机视觉领域要准备的知识
- C语言 sprintf 函数的使用
- 【LayoutInflater】LayoutInflater使用