008,二叉樹的下一個節點
二叉樹的下一個結點
題目描述
給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
解題思路
① 如果一個節點有右子樹不為空,那麼該節點的下一個節點是右子樹的最左節點;
② 否則,向上找第一個左連結指向的樹包含該節點的祖先節點。
public class TreeLinkNode {
int val;
TreeLinkNode left = null;
TreeLinkNode right = null;
TreeLinkNode next = null;
TreeLinkNode(int val) {
this.val = val;
}
}
public TreeLinkNode GetNext(TreeLinkNode pNode) {
if (pNode.right != null) {
TreeLinkNode node = pNode.right;
while (node.left != null) node = node.left;
return node;
} else {
while (pNode.next != null) {
TreeLinkNode parent = pNode.next;
if (parent.left == pNode) return parent;
pNode = pNode.next;
}
}
return null;
}
相關文章
- 劍指offer 面試題 7 :二叉樹的下一個節點是什麼?面試題二叉樹
- 快速求完全二叉樹的節點個數二叉樹
- LeetCode-222-完全二叉樹的節點個數LeetCode二叉樹
- 程式碼隨想錄——二叉樹-11.完全二叉樹的節點個數二叉樹
- 演算法題(三十五):二叉樹的下一個結點演算法二叉樹
- 填充每個節點的下一個右側節點指標指標
- (python版)《劍指Offer》JZ57:二叉樹的下一個結點Python二叉樹
- Day16 | 104.二叉樹的最大深度 、111.二叉樹的最小深度 、222.完全二叉樹的節點個數二叉樹
- 為什麼二叉樹中葉子節點個數等於度為2的節點個數+1二叉樹
- 二叉樹任意兩個節點間的最大距離(Java,LeetCode 543二叉樹的直徑 遞迴)二叉樹JavaLeetCode遞迴
- 填充每個節點的下一個右側節點指標 II指標
- Java中在二叉搜尋樹中查詢節點的父節點Java
- 116. 填充每個節點的下一個右側節點指標指標
- 二叉搜尋樹如何刪除節點
- 671. 二叉樹中第二小的節點二叉樹
- 刷題系列 - 在二叉樹中,為每個節點關聯其右相鄰節點二叉樹
- LeetCode-116-填充每個節點的下一個右側節點指標LeetCode指標
- day 15|二叉樹part03|110.平衡二叉樹|257. 二叉樹的所有路徑|404.左葉子之和| 222.完全二叉樹的節點個數二叉樹
- 到達二叉樹目標節點的完整路徑二叉樹
- LeetCode——671. 二叉樹中第二小的節點LeetCode二叉樹
- 【vue】在二叉樹中根據子節點找出父節點路徑Vue二叉樹
- 刷題系列 - 在二叉樹中查詢給出節點,並返回以該節點為根的樹二叉樹
- LeetCode117-填充每個節點的下一個右側節點指標 IILeetCode指標
- LeetCode-117-填充每個節點的下一個右側節點指標 IILeetCode指標
- JavaScript 獲取下一個元素節點JavaScript
- Kotlin 鏈式儲存的二叉樹中查詢節點Kotlin二叉樹
- 783. 二叉搜尋樹節點最小距離
- 二叉搜尋樹的第 k 個結點
- 刷題系列 - 在給出二叉樹中兩個點,求出其最小共同父節點二叉樹
- leetcode------給定一個二叉樹和一個值sum,判斷是否有從根節點到葉子節點的節點值之和等於sum 的路徑,LeetCode二叉樹
- 程式碼隨想錄day15 || 110 平衡二叉樹,257 二叉樹所有路徑,404 左葉子之和,222 完全二叉樹節點個數二叉樹
- 每日一練(26):二叉搜尋樹的第k大節點
- 二叉樹父子節點下標位置關係證明二叉樹
- 《劍指offer》之在完全二叉樹中新增子節點二叉樹
- 面試8:找二叉樹的下個結點面試二叉樹
- 二叉樹的知識點二叉樹
- 程式碼隨想錄 第十六天 | ● 104.二叉樹的最大深度 559.n叉樹的最大深度 ● 111.二叉樹的最小深度 ● 222.完全二叉樹的節點個數二叉樹
- 1019. 連結串列中的下一個更大節點