二叉搜索树与双向链表
Posted dyq19
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉搜索树与双向链表相关的知识,希望对你有一定的参考价值。
public class Solution {
public static TreeNode Convert(TreeNode pRootOfTree) {
TreeNode p = pRootOfTree;
TreeNode q = null;
if(p!=null){
LinkedList<TreeNode> list = new LinkedList<>();
list.push(p);//根结点入栈
while(p.left!=null){
p = p.left;
list.push(p);
}
TreeNode s = p;
while(!list.isEmpty()){
p = (TreeNode)list.pop();//最左结点
if(q == null){
q = p;
}
else{
q.right = p;
p.left = q;
q = p;
}
if(p.right != null){
list.push(p.right);
p = p.right;
while(p.left!=null){
p = p.left;
list.push(p);
}
}
}
return s;
}
return null;
}
}
https://en.wikipedia.org/wiki/Tree_traversal#Iterative_Traversal
以上是关于二叉搜索树与双向链表的主要内容,如果未能解决你的问题,请参考以下文章