LeetCode基础--二叉树--中序遍历
2017-11-27 15:23
260 查看
中序: 左->根->右
递归实现:
非递归实现:
递归实现:
public class Solution { public IList<int> PreorderTraversal(TreeNode root) { List<int> result = new List<int>(); if (root != null){ result.AddRange(PreorderTraversal(root.left)); result.Add(root.val); result.AddRange(PreorderTraversal(root.right)); } return result; } }
非递归实现:
public class Solution { public IList<int> InorderTraversal(TreeNode root) { List<int> result = new List<int>(); if(root == null) { return result; } Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode runNode = root; while(runNode != null || stack.Count > 0) { if(runNode != null) { stack.Push(runNode); runNode = runNode.left; } else { runNode = stack.Peek(); result.Add(stack.Pop().val); runNode = runNode.right; } } return result; } }
相关文章推荐
- [LeetCode] 94. 中序遍历二叉树
- LeetCode基础--二叉树
- 二叉树基础之前序遍历、中序遍历、后序遍历的递归和非递归实现
- [LeetCode] 94. Binary Tree Inorder Traversal 二叉树的中序遍历
- [LeetCode] 94. 中序遍历二叉树
- LeetCode基础--二叉树-判断是否对称
- [leetcode]_根据二叉树的先序遍历(后序遍历) + 中序遍历 重建二叉树
- LeetCode—***Binary Tree Inorder Traversal二叉树的中序遍历
- [LeetCode] 94. 中序遍历二叉树
- LeetCode基础--二叉树-判断二叉树是否平衡
- [LeetCode] Binary Tree Inorder Traversal 二叉树的中序遍历
- [LeetCode] 94. 中序遍历二叉树
- LeetCode基础--二叉树--层次遍历
- LeetCode基础--二叉树--ZigZag遍历
- [LeetCode] 94. 中序遍历二叉树
- LeetCode基础--二叉树--后序遍历
- LeetCode | Binary Tree Inorder Traversal(二叉树的中序遍历)
- [LeetCode] 94. 中序遍历二叉树
- LeetCode基础--二叉树-求最大高度
- LeetCode(Construct Binary Tree from Preorder and Inorder Traversal )根据二叉树的中序遍历和后序遍历重建二叉树