描述
給定乙個二叉查詢樹(什麼是二叉查詢樹),以及乙個節點,求該節點在中序遍歷的後繼,如果沒有返回null
保證p是給定二叉樹中的乙個節點。(您可以直接通過記憶體位址找到p)
樣例 給出 tree = [2,1] node = 1:
2
/1
返回 node 2.
給出 tree = [2,1,3] node = 2:
2
/ \1 3
返回 node 3.
挑戰 o(h),其中h是bst的高度。
思路
#ifndef c448_h
#define c448_h
#include
using namespace std;
class treenode
};class solution
return temp;
}else
return p->right;
}else
}//在p沒有右子樹的情況下找到root中第乙個值大於p的節點
void findnext(treenode *root, treenode* p)
else
if (root->val < p->val)
else
return;
}treenode *temp =
null;
};#endif
二叉查詢樹的中序後繼
給定乙個二叉查詢樹 什麼是二叉查詢樹 以及乙個節點,求該節點在中序遍歷的後繼,如果沒有則返回null 樣例 1 輸入 node with value 1 輸出 2 解釋 1 2樣例 2 輸入 node with value 1 輸出 2 解釋 2 1 3二叉樹的表示 o h 其中h是bst的高度。保...
樹 尋找二叉排序樹的前驅後繼(中序遍歷)
前驅結點 結點val值小於該結點val值並且值最大的結點 後繼結點 結點val值大於該結點val值並且值最小的結點 若乙個結點有左子樹,那麼該結點的前驅節點是其左子樹中val值最大的結點 即左子樹中最右邊的結點 若乙個結點沒有左子樹 若該結點是其父結點的右孩子,那麼該結點的前驅結點即為其父結點。若該...
二叉樹後繼節點
二叉樹後繼節點,中序遍歷的後乙個節點 1 有右子樹,右子樹的最左節點是後繼 2 無右子樹,並且是父節點的左孩子,父節點為後繼 3 無右子樹,並且是父節點的右孩子,查該節點是哪個節點左子樹的最後節點 一直往上找,找到乙個節點是父節點的左孩子,則該父節點為後繼節點 class node def init...