#10291. 二叉树的节点遍历

二叉树的节点遍历


题目 2:二叉树的节点遍历

问题描述:

给定一个深度为 depth 的二叉树,每个节点编号从 1 到 ( 2^depth - 1)。你从根节点开始进行 k 次深度优先遍历。每次遍历时,根据以下规则更新树的节点状态:

  • 如果当前节点未被访问过,则向左子节点(编号为 2 * 当前节点编号)递归。
  • 如果当前节点已经被访问过,则转向右子节点(编号为 2 * 当前节点编号 + 1)。

请计算并输出 k 次遍历结束后,最后一次访问的节点编号。

输入格式:

  • 输入两个整数 depthk(( 1 <=depth<=20 ),1 <= k <= 10^5 )),表示树的深度和 DFS 执行的次数。

输出格式:

  • 输出最终的节点编号 ans,即执行 k 次 DFS 后的最后一个访问节点。

示例 1:

输入:

5 4

输出:

18

示例 2:

输入:

4 5

输出:

14