【LeetCode-面试算法经典-Java实现】【094-Binary Tree Inorder Traversal(二叉树中序遍历)】
来源:互联网 发布:windows重置此电脑失败 编辑:程序博客网 时间:2024/05/29 04:34
【094-Binary Tree Inorder Traversal(二叉树中序遍历)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
Given a binary tree, return the inorder traversal of its nodes’ values.
题目大意
对一棵二叉树进行中序遍历。
解题思路
解法一:递归实现,解法二:迭代实现。
代码实现
二叉树结点类
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}
算法实现类,解法一
import java.util.LinkedList;import java.util.List;public class Solution { private List<Integer> result; public List<Integer> inorderTraversal(TreeNode root) { result = new LinkedList<>(); inOrder(root); return result; } private void inOrder(TreeNode root) { if (root != null) { inOrder(root.left); result.add(root.val); inOrder(root.right); } }}
算法实现类,解法一
import java.util.LinkedList;import java.util.List;public class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> result = new LinkedList<>(); LinkedList<TreeNode> stack = new LinkedList<>(); TreeNode node = root; while (node != null || !stack.isEmpty()) { while (node != null) { stack.addLast(node); node = node.left; } if (!stack.isEmpty()) { node = stack.removeLast(); result.add(node.val); node = node.right; } } System.out.println(result); return result; }}
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
解法一
解法二
特别说明
欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/47310553】
2 1
- 【LeetCode-面试算法经典-Java实现】【094-Binary Tree Inorder Traversal(二叉树中序遍历)】
- 【LeetCode-面试算法经典-Java实现】【102-Binary Tree Level Order Traversal(二叉树层序遍历)】
- 【LeetCode-面试算法经典-Java实现】【105-Construct Binary Tree from Preorder and Inorder Traversal(构造二叉树)】
- 【LeetCode-面试算法经典-Java实现】【106-Construct Binary Tree from Inorder and Postorder Traversal(构造二叉树II)】
- 【LeetCode-面试算法经典-Java实现】【103-Binary Tree Zigzag Level Order Traversal(二叉树分层Z字形遍历)】
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- 【LeetCode-面试算法经典-Java实现】【144-Binary Tree Preorder Traversal(二叉树非递归前序遍历)】
- 【LeetCode-面试算法经典-Java实现】【145-Binary Tree Postorder Traversal(二叉树非递归后序遍历)】
- Leetcode: Binary Tree Inorder Traversal(二叉树中序遍历)
- LeetCode 94 Binary Tree Inorder Traversal(二叉树中序遍历)
- 【LeetCode】Binary Tree Inorder Traversal ---二叉树中序遍历
- Binary Tree Inorder Traversal 二叉树中序遍历@LeetCode
- Leetcode Binary Tree Inorder Traversal 二叉树中序遍历
- [leetcode-二叉树中序遍历]--94. Binary Tree Inorder Traversal
- leetcode 94. Binary Tree Inorder Traversal 二叉树中序递归遍历
- 【二叉树中序遍历】Binary Tree Inorder Traversal
- 【LeetCode】Binary Tree Inorder Traversal 二叉树中序遍历递归以及非递归算法
- 二叉树中序遍历Binary Tree Inorder Traversal (Java)
- 如何解决jsp:include标签在包含html文件时遇到的乱码问题
- 解决单元测试时报Could not instantiate问题
- 读书笔记:当梦想照进现实
- Git学习总结
- 【LeetCode-面试算法经典-Java实现】【092-Reverse Linked List II(反转单链表II)】
- 【LeetCode-面试算法经典-Java实现】【094-Binary Tree Inorder Traversal(二叉树中序遍历)】
- 2.2.3 Main方法;2.2.4 标识符及关键字;2.2.5 C#语句
- 【LeetCode-面试算法经典-Java实现】【098-Validate Binary Search Tree(验证二叉搜索树)】
- linux下logrotate 配置和理解
- oc语言第九课 KVC、KVO与谓词——ios学习连载14
- [LeetCode]Generate Parentheses
- [LeetCode]Swap Nodes in Pairs
- [LeetCode]Divide Two Integers
- UI初级第一课 iPhone开发入门——iOS学习连载15