其他分享
首页 > 其他分享> > 二叉搜索树与双向链表

二叉搜索树与双向链表

作者:互联网

题目描述

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。  
 1 /**
 2 public class TreeNode {
 3     int val = 0;
 4     TreeNode left = null;
 5     TreeNode right = null;
 6 
 7     public TreeNode(int val) {
 8         this.val = val;
 9 
10     }
11 
12 }
13 */
14 public class Solution {
15     TreeNode lastNode;
16     public void dfs(TreeNode p) {
17         if (p == null) return;
18         TreeNode l = p.left;
19         TreeNode r = p.right;
20         p.left = p.right = null;
21         dfs(l);
22         p.left = lastNode;
23         lastNode.right = p;
24         lastNode = p;
25         dfs(r);
26     }
27     public TreeNode Convert(TreeNode pRootOfTree) {
28         if (pRootOfTree == null) return null;
29         TreeNode dummy = new TreeNode(0);
30         lastNode = dummy;
31         dfs(pRootOfTree);
32         dummy.right.left = null;
33         return dummy.right;
34     }
35 }

 

标签:right,TreeNode,lastNode,二叉,链表,双向,null,public,left
来源: https://www.cnblogs.com/hyxsolitude/p/12344284.html