遍历:遍历每个元素。
寻常遍历root只会指一次。
而二叉树遍历每个元素则会指三次。
中序遍历-节点的中序
void traveres(TreeNode* root){
if(!root)
return;
traveres(root->left);
cout << root->val << endl;
traveres(root->right);
}
中序遍历亦叫节点的中序。即节点在中序的时候做cout。而遍历也就是每个节点都在中序的时候做cout。
所以traveres(root->left);
则是节点左树的中序。所以,cout
会在节点左树的中序后做操作。
所以,中序遍历的具体时间点就是在节点左树的中序后。
但在节点左树遍历前并非什么都没有,而是有其与根节点的路径上节点的中序遍历。但路径上的节点也并非全都中序遍历过。而是要具体判断。
判断方式:亦即用节点的中序。即判断节点左树是否遍历完。
如13,那么6有,3无,1有。