思路: 1. 使用一个栈保存结点(列表实现): 2. 如果结点存在,入栈,然后将当前指针指向左子树,直到为空: 3. 当前结点不存在,则出栈栈顶元素,并把当前指针指向栈顶元素的右子树: 4. 栈不为空,循环2.3部. 代码如下,解决了leetcode94. Binary Tree Inorder Traversal: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): #…
第一次动手写二叉树的,有点小激动,64行的if花了点时间,上传leetcode一次点亮~~~ /* inorder traversal binary tree */ #include <stdio.h> #include <stdlib.h> struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; }; int* inorderTraversal(struct TreeNode* root,…
思路: 1. 使用列表保存结果: 2. 使用栈(列表实现)存储结点: 3. 当根结点存在,保存结果,根结点入栈: 4. 将根结点指向左子树: 5. 根结点不存在,栈顶元素出栈,并将根结点指向栈顶元素的右子树: 6. 重复步骤3-6,直到栈空. LeetCode: 144. Binary Tree Preorder Traversal # Definition for a binary tree node. # class TreeNode(object): # def __init__(self…
java创建二叉树并递归遍历二叉树前面已有讲解:http://www.cnblogs.com/lixiaolun/p/4658659.html. 在此基础上添加了非递归中序遍历二叉树: 二叉树类的代码: package binarytree; import linkedstack.LinkStack; import linkqueue.LinkQueue; public class BinaryTree { class Node { public Object data; public Node…
import java.util.LinkedList; import java.util.Scanner; import java.util.Stack; //structure of binary tree class BiTree { BiTree lchild; BiTree rchild; String data; } public class BiTreeTest { static Scanner scanner = new Scanner(System.in); // test c…
[145-Binary Tree Postorder Traversal(二叉树非递归后序遍历)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3 return [3,2,1]. Note: Recursive sol…
今天是LeetCode专题第60篇文章,我们一起来看的是LeetCode的94题,二叉树的中序遍历. 这道题的官方难度是Medium,点赞3304,反对只有140,通过率有63.2%,在Medium的题目当中算是很高的了.这题非常基础,可以说是程序员必会的算法题之一. 我们先来看题意. 题意 题意很短, 只有一句话,给定一棵二叉树,返回它中序遍历的结果. 样例 Input: [1,null,2,3]   1    \     2    /   3Output: [1,3,2] 用递归做这道题非常…
  有关树的理论部分描述:<数据结构与算法>-4-树与二叉树:   下面代码均基于python实现,包含: 二叉树的前序.中序.后序遍历的递归算法和非递归算法: 层次遍历: 由前序序列.中序序列重构二叉树: 由后序序列.中序序列重构二叉树: # -*- coding: utf-8 -*- # @Time: 2019-04-15 18:35 # @Author: chen class NodeTree: def __init__(self, root=None, lchild=None, rch…
题意: 输入一个正整数N(<=30),接着输入两行N个正整数第一行为先序遍历,第二行为后续遍历.输出是否可以构造一棵唯一的二叉树并输出其中一颗二叉树的中序遍历. trick: 输出完毕中序遍历后须换行,否则所有测试点格式错误. #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ],post[]; map<int,int>mp; int flag; vector<int>…