这是教科书上的一个问题,答案是关于二叉树的。
如果后置遍历访问二叉树的节点,以U,G,T,R,A,I的顺序存储字符值,那么同一棵二叉树的无序遍历的访问顺序是什么?
( a) I、G、U、A、T、R
( b) R、G、U、I、T、A
( c) G、U、I、T、A、R
( d)无法确定
答:C
现在的问题是,C是如何回答的。我意识到,仅进行一次后期遍历并不足以唯一地标识一棵树,而且可以为任何类型的树(不是无序的)定义预顺序遍历和后置遍历,但不能对一棵树进行唯一标识。顺序和顺序后的遍历可以。这个问题并不是专门针对BST的,这样可以产生不同的效果。所以我想我需要澄清关于C的答案,而不是D,这就是我所
python的新手,我正在做leetcode problem 94,二叉树顺序遍历。给定二叉树的根,返回其节点值的顺序遍历。
class Solution:
def inorderTraversal(self, root: TreeNode) -> List[int]:
if not root:return []
res = []
res+=self.inorderTraversal(root.left)
res.append(root.val)
res+=self.inorderTraversal(
我想使用C#生成一个二叉树,并在其中插入一个节点。
我尝试了很多方法,但没有生成任何二叉树。我想写一个函数,它将遍历树的根到叶,那么我该如何实现这一点呢?
在下面的代码中,二叉树是我的类。
找到我的以下代码。
int[] values = new int[] { 1, 2, 3, 4, 5 };
BinaryTree tree = new BinaryTree(values);
var node1 = new Node();
var node2 = new Node();
var node3 = new Node
我试图了解递归是如何工作的,遍历二叉树是如何工作的。
据我所知,递归是在它里面调用一个函数。有点像循环。
现在,我得到了关于如何在二叉树上执行postOrder遍历的代码。
(请注意,这不是我的代码,我只是想了解递归是如何通过这段代码工作的)
# Definition for a binary tree node
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class So
假设我们得到了一个水平顺序遍历输出。如何从填充数据的二叉树中构造正确的位置?
请注意,我不是试图从给定的遍历输出中勾勒出树,而是读取数组中的遍历数据,然后用C语言进行实际编码来填充二叉树。
例:
设a[] = {A,B,C,D,E,F,G};//数组中的遍历输出
所以层序树看起来如下:
A
/ \
B C
/ \ / \
D E F G
假设有一个树节点结构,如下所示:
typedef struct node
{
char data;
struct node* left